【发布时间】:2015-06-04 09:16:08
【问题描述】:
我有一个 Windows 命令行应用程序,它将输出打印到标准输出,然后无限期地等待击键结束。我使用这样的函数来处理它:
def run_command_on_windows(command):
"""
Run commandline program on Windows OS (current)
:param command: command to run (string)
:return: returns result of command
"""
p = subprocess.Popen(['c:\\windows\\system32\\cmd.exe', '/c'] + command.split(),
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, err = p.communicate()
p.stdin.write('\n\n')
rc = p.returncode
return output.split('\r\n')
如果我可以在 Popen 中使用“stdin=subprocess.PIPE”,一切都会变得简单,但我不能,因为当我这样重定向标准输入时,应用程序会立即崩溃。
p.stdin.write('\n\n')
不起作用,因 AttributeError 而崩溃。
有没有办法解决这个问题?
【问题讨论】:
标签: python python-2.7 subprocess