【问题标题】:python subprocess.call making program stop after second executionpython subprocess.call 使程序在第二次执行后停止
【发布时间】:2019-08-15 00:37:15
【问题描述】:

我正在生成一个稍后由外部程序处理的文本文件。这必须完成 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 与这些选项一起使用。如果我尝试使用外壳,它不起作用。

在调用subprocess.call() 之后我还需要做些什么来刷新它的内部内容吗?

【问题讨论】:

  • nucplot 是做什么的?可能是锁住了输入文件,第二个实例打不开,失败了?

标签: python subprocess


【解决方案1】:

尝试使用 subprocess.check_output

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

_ = subprocess.check_output(['/path/to/nucplot', '-i', '-c', 'textfile.txt'])

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 2022-01-05
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 2018-10-10
    • 1970-01-01
    • 2013-03-01
    相关资源
    最近更新 更多