【发布时间】:2018-03-28 03:31:00
【问题描述】:
我有一个想通过 python 控制的外部命令行程序。使用 subprocess.open 时,它会连续打印终端中的第一个命令。我想一个接一个地输入一系列命令,然后在程序完成运行后终止程序。我尝试了几种不同的方法,但似乎没有任何效果。有人可以告诉我我做错了什么,或者帮助我修复我的代码吗?这就是我所拥有的:
from subprocess import Popen, PIPE
program_location = /Fortran/Program/Here/Program
file_location = /Place/For/Input/File/File.EXP
command_list = [file_location, 'expedt', 'y', 'y', 'x', 'powpref', 'genles']
p = Popen(program_location, stdin=PIPE)
for i in command_list:
ps.stdin.write(i)
【问题讨论】:
-
根据您正在执行的 shell,您可能需要用换行符终止每个命令,例如
i + '\n'.
标签: python python-3.x subprocess os.system