我负责用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 是一个字符串变量,其中包含输入文件将包含的文本。
我真的不知道为什么 PROGM.INP 在尖括号中传递给 progm_64.exe,但是您应该添加到 Popen PROGM_OUT 中的命令列表,因为它传递给批处理脚本中的 exe。首先在你的批处理脚本中找到什么是 PROGM.OUT.