2013-12-06 3 views
4

Мне нужно запустить скрипт bash из Python. Я получил это для работы следующим образом:Запуск сценария bash из Python

import os 
os.system("xterm -hold -e scipt.sh") 

Это не совсем то, что я делаю, но в значительной степени идея. Это прекрасно работает, открывается новое окно терминала, и я держу его для целей отладки, но моя проблема: мне нужно, чтобы скрипт python продолжал работать, даже если это еще не закончено. Как я могу это сделать?

ответ

8

Я рекомендую вам использовать subprocess модуль: docs

И вы можете

import subprocess 

cmd = "xterm -hold -e scipt.sh" 
# no block, it start a sub process. 
p = subprocess.Popen(cmd , shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 

# and you can block util the cmd execute finish 
p.wait() 
# or stdout, stderr = p.communicate() 

Для получения дополнительной информации, читать документы, :).

отредактировал опечатки

+0

Работал идеально. БЛАГОДАРЯ! – ajk4550

Смежные вопросы