当前位置: 首页 > 知识库问答 >
问题:

python子进程。调用使程序在第二次执行后停止

陆城
2023-03-14

我正在生成一个文本文件,稍后由外部程序处理。这必须执行1000次,为此,我使用一个子流程。在循环中为我要处理的每个文本文件调用()。

子流程的第一次调用。call()工作正常。

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

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

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

这是调用外部程序的行

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

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

调用子流程后,我还需要做什么。调用()以便刷新其内部内容?

共有1个答案

钱瑞
2023-03-14

尝试使用子流程。检查输出

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

_ = subprocess.check_output(['/path/to/nucplot', '-i', '-c', 'textfile.txt'])
 类似资料:
  • 我想从. dat文件恢复MSSQL数据库。 通过在Windows PowerShell上调用以下命令/语句或将其保存在一个文件夹中,我成功地做到了这一点。bat文件并运行文件本身: 但是,由于我需要在不同的数据库中多次重复此指令,因此我希望使用Python在循环中执行此操作。我尝试使用子流程模块复制上述指令。没有成功。 我的Python代码如下所示: 在Windows PowerShell上运行此

  • 在一个项目中,我们必须运行一个定期开始的作业(现在QA env上每5分钟开始一次),该作业处理40K用户的一些任务。我们决定使用Spring Batch,因为它非常适合,并且几乎用默认配置实现了它(例如,它使用)。好的,有一个工作由一个步骤组成: 开箱即用 在内存中执行轻量级计算的自定义 自定义,它通过多个JPQL和本机查询将数据保存到同一个PostgreSQL db。 作业本身是用调度的,并且每

  • 问题内容: 我正在远程服务器上运行几个命令,并分别收集其输出以进行进一步处理: 但是,这会导致顺序执行subprocess(’ssh … cat …’)命令。第二高峰等待第一个完成,依此类推。 如何修改此代码,以使子流程调用并行运行,同时仍能够分别收集每个输出? 问题答案: 另一种方法(而不是将shell进程放在后台的其他建议)是使用多线程。 您所拥有的方法将执行以下操作: 要收集结果,您可以执行

  • 问题内容: 我想使用Python连接到远程服务器并在其上执行一个过程。我希望能够获得该过程的返回码和stderr(如果有)。以前有没有人做过这样的事情。我已经用ssh完成了,但是我想从Python脚本中完成。 干杯。 问题答案: 好吧,您可以从python调用ssh …

  • 使用在python中,我试图运行一个perl脚本,它在远程机器上运行一个代码来获取一些信息。 我在机器A上有两个脚本—python和perl。python脚本使用方法。两个脚本都运行得很好。 但是,perl脚本是按串行顺序执行的(一个接一个的IP)。 实际行为- python脚本通过传递'198.168来运行perl脚本。1.2' perl脚本执行代码并Hibernate15秒 python脚本然

  • 问题内容: 在PyCharm中,运行脚本后,它会自动将其杀死: C:\ Users \ Sean.virtualenvs \ Stanley \ Scripts \ python.exe C:/Users/Sean/PycharmProjects/Stanley/Stanley.py 流程结束,退出代码为0 脚本启动后如何与之交互?由于缺少更好的措辞方式,我该如何获取 脚本运行一次后提示? PyC