2012-05-27 6 views
3

У меня есть скрипт python, который должен выполнить файл .jar, который находится в другом каталоге. Какой был бы лучший способ сделать это? До сих пор я думал:Как выполнить файл, требующий наличия в том же каталоге?

subprocess.call(["cd","/path/to/file"]) 
subprocess.call(["./file.jar"]) 

Как это сделать?

Update:

Используя оба приведенных ниже ответов, это то, что я в конечном итоге делает:

subprocess.call(shlex.split("./file.jar -rest -of -command"), cwd=COMMAND_FOLDER) 

ответ

7

Для запуска процесса в другой текущий рабочий каталог, используйте subprocess.Popen: cwd параметр:

import subprocess 
proc = subprocess.Popen(['file.jar'], cwd = '/path/to/file') 
2

howabout с помощью:

import subprocess 
import shlex 

cmd = "the command to use to execute your binary" 


args = shlex.split(cmd) 
try: 
    p = subprocess.call(args) 
except OSError, e: 
    print >>sys.stderr, "Execution failed:", e 
Смежные вопросы