我有一個外部命令行程序,我想通過python進行控制。當使用subprocess.open時,它會連續打印終端中的第一個命令。我想要一個接一個地輸入一系列命令,然後在完成運行後終止程序。我嘗試了幾種不同的方法,但似乎沒有任何工作。有人能告訴我我做錯了什麼,或者幫我修復我的代碼嗎?這是我有:如何使用python子進程正確控制命令行程序?
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,可能需要使用換行符來終止每個命令,例如, '我+'\ n''。 – cdarke