Python 子进程:如何传递文本文件作为输入?

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

我负责用Python更新一些旧代码。我最初得到了一个批处理文件,可以在 Windows 中运行它,如下所示:

copy .\data\randomdata.txt     tape20
copy .\Input\PROGM.INP                            .

progm_64.exe < PROGM.INP > PROGM.OUT

目标是不使用批处理文件,而只使用 python 放弃将输入文件写入目录的需要。 我无法重新创建最后一行的功能。

当我使用 subprocess.Popen() 时,我尝试了以下操作:

p = Popen(['progm_64.exe',PROGM_INP], cwd=os.getcwd(), )
stdout, stderr = p.communicate()

其中 PROGM_INP 是一个字符串变量,其中包含输入文件将包含的文本。

python windows popen
1个回答
-1
投票

我真的不知道为什么 PROGM.INP 在尖括号中传递给 progm_64.exe,但是您应该添加到 Popen PROGM_OUT 中的命令列表,因为它传递给批处理脚本中的 exe。首先在你的批处理脚本中找到什么是 PROGM.OUT.

© www.soinside.com 2019 - 2024. All rights reserved.