python subprocess.call使程序在第二次执行后停止

问题描述 投票:0回答:1

我正在生成一个文本文件,稍后由外部程序处理。这必须完成1000次,为此,我在循环内为我想要处理的每个文本文件使用subprocess.call()。

subprocess.call()的第一次调用完美无缺。

第二次调用失败,python程序以[]Stop退出。

- 没有调试输出。 - 两者都保持停止状态,但在进程列表中

我试过subprocess.call()subprocess.Popen(),结果是一样的。我试图用与第一次执行相同的文本文件来运行它,它也失败了,所以罪魁祸首是subprocess.call()函数。

这是调用外部程序的行

subprocess.call(['/bin/bash', '-i', '-c', 'nucplot textfile.txt']);

该程序是一个简单的二进制文件,但它必须使用其安装的ENV变量才能正常工作,因此使用/bin/bash和这些选项。如果我尝试使用shell,它就不起作用。

在调用subprocess.call()之后我还需要做什么才能刷新内部资源吗?

python subprocess
1个回答
0
投票

尝试使用subprocess.check_output

https://docs.python.org/3/library/subprocess.html#subprocess.check_output

_ = subprocess.check_output(['/path/to/nucplot', '-i', '-c', 'textfile.txt'])
© www.soinside.com 2019 - 2024. All rights reserved.