我试图根据他给我的回答发送cmd
许多命令。发送很多命令到cmd
我得到一个运行时错误信息:
ValueError: I/O operation on closed file
当我跑步是这样的:
import subprocess
process = subprocess.Popen("cmd.exe", stdout=subprocess.PIPE,stdin=subprocess.PIPE)
answer = process.communicate(input="some command\n" + '\n')[0]
"""
choosing another command according to answer
"""
print process.communicate(input=another_command + '\n')[0]
process.kill()
就如何解决该问题的任何想法?
谢谢你的帮助!
你能提供一个更大的图片吗?你在'process.kill()'之后发送你的命令吗?如果没有,你可以提供一些代码示例(使用真正的命令而不是'“某些命令”)? 您尝试在cmd中运行的命令有可能终止您的shell。 – woockashek
即使没有'process.kill()',并且两个命令都是'“ipconfig \ n”'。第一个命令正在工作,第二个命令给我运行时错误 –
执行一个命令可能会返回一个返回码,关闭Popen对象。例如,如果你执行ipconfig,那么执行'process.poll()'你可能会看到'0'的返回码。 – sytech