从Python运行bash脚本

ajk*_*550 4 python linux bash

我需要从Python运行一个bash脚本.我按照以下方式工作:

import os
os.system("xterm -hold -e scipt.sh")
Run Code Online (Sandbox Code Playgroud)

这不完全是我正在做的,但几乎是这个想法.这工作正常,一个新的终端窗口打开,我持有它用于调试目的,但我的问题是我需要python脚本继续运行,即使没有完成.我能做到这一点吗?

atu*_*pal 8

我建议你使用subprocessmodule: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()
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请阅读文档,:).

编辑拼写错误