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

时间:2019-03-24 17:24:39

标签: python subprocess

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

+= 16的第一次调用效果很好。

第二次调用失败,并且python程序退出并显示subprocess.call()

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

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

这是调用外部程序的行

subprocess.call()

该程序是一个简单的二进制文件,但是它必须使用其安装的ENV变量才能正常工作,因此将subprocess.call(['/bin/bash', '-i', '-c', 'nucplot textfile.txt']); 与这些选项一起使用。如果尝试使用外壳,它将无法正常工作。

调用/bin/bash后是否还需要做其他操作以刷新其内部内容?

1 个答案:

答案 0 :(得分: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'])