Python에서 외부 프로그램 실행하기
절름발이 프로그래머/Python / 2009. 11. 24. 13:02
를 참고했습니다.
python 2.3 이하 버전에서 주로 쓰던 방법은 spawn 계열 함수를 이용합니다.
python 2.4 이상에서는 Popen 함수 또는 call 함수를 이용합니다.
가능하면, spawn 계열보다는 Popen이나 call을 이용하기를 권장하고 있습니다.
import Popen from subprocess
P_NOWAIT example:
pid = os.spawnlp(os.P_NOWAIT, "/bin/mycmd", "mycmd", "myarg")
==>
pid = Popen(["/bin/mycmd", "myarg"]).pid
P_WAIT example:
retcode = os.spawnlp(os.P_WAIT, "/bin/mycmd", "mycmd", "myarg")
==>
retcode = call(["/bin/mycmd", "myarg"])
Vector example:
os.spawnvp(os.P_NOWAIT, path, args)
==>
Popen([path] + args[1:])
Environment example:
os.spawnlpe(os.P_NOWAIT, "/bin/mycmd", "mycmd", "myarg", env)
==>
Popen(["/bin/mycmd", "myarg"], env={"PATH": "/usr/bin"})
실제 사용해 보니,
Popen(["c:\progdir\prog.exe", ("%d" % int_val), ("%s" % str_val)], cwd = "c:\progdir\\")
라고 쓰는게 가장 안정적이다.
cwd 변수는 프로그램의 실행디렉토리를 지정하는 것으로, 프로그램이 그 디렉토리에서 실행되는 효과를 가진다.