다음 os.system()
과 같이 사용할 수 있습니다 .
import os
os.system('ls')
또는 귀하의 경우 :
os.system('echo 1 > /proc/sys/net/ipv4/ip_forward')
os.system('iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080')
더 나은 아직, 당신은 하위 프로세스의 호출을 사용할 수 있습니다, 그것은 더 안전하고 강력하며 아마 빠릅니다.
from subprocess import call
call('echo "I like potatos"', shell=True)
또는 쉘을 호출하지 않고 :
call(['echo', 'I like potatos'])
출력을 캡처하려는 경우이를 수행하는 한 가지 방법은 다음과 같습니다.
import subprocess
cmd = ['echo', 'I like potatos']
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
o, e = proc.communicate()
print('Output: ' + o.decode('ascii'))
print('Error: ' + e.decode('ascii'))
print('code: ' + str(proc.returncode))
나는 매우 의 설정 추천 timeout
에를 communicate
, 또한 그것을 호출 할 때 얻을 수있는 예외를 포착 할 수 있습니다. 이것은 오류가 발생하기 쉬운 코드이므로 오류가 발생할 것으로 예상하고 적절하게 처리해야합니다.
https://docs.python.org/3/library/subprocess.html