Python-在Python中运行Bash命令

我运行一个包含此行的python脚本

bashCommand = "cwm --rdf test.rdf --ntriples > test.nt"

os.system(bashCommand)

然后,我在服务器上运行相同的代码,并收到以下错误消息

'import site' failed; use -v for traceback

Traceback (most recent call last):

File "/usr/bin/cwm", line 48, in <module>

from swap import diag

ImportError: No module named swap

因此,我要做的就是print bashCommand在运行之前,在终端中插入一个比命令更清晰的信息os.system()。

当然,我再次收到错误(由引起os.system(bashCommand)),但是在该错误出现之前,它会在终端中打印命令。然后我只是复制了输出,然后将复制粘贴到终端中,然后按回车,它就起作用了…

有人知道发生了什么吗?

回答:

不要使用os.system。不推荐使用此方法,而推荐使用subprocess。从文档:“此模块旨在取代旧的几个模块和功能:os.system,os.spawn”

就像你的情况一样:

bashCommand = "cwm --rdf test.rdf --ntriples > test.nt"

import subprocess

process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)

output, error = process.communicate()

以上是 Python-在Python中运行Bash命令 的全部内容, 来源链接: utcz.com/qa/432256.html

回到顶部