为什么我的代码只打印第一行cmd?

时间:2018-01-22 21:55:56

标签: python-3.x cmd

所以我正在学习如何使用python中的cmd并尝试这样做:

import subprocess
proc = subprocess.Popen('cmd.exe', stdin = subprocess.PIPE,  encoding = 
'utf8', stdout = subprocess.PIPE)
stdout, stderr = proc.communicate('dir c:\\')
print(stdout)

这显然不起作用,因为这是我所接受的:

Microsoft Windows [版本10.0.14393] (c)2016 Microsoft Corporation。保留所有权利。

C:\用户\用户\应用程序数据\本地\程序\的Python \ Python36-32>更?

为什么只有一行而不是命令?

1 个答案:

答案 0 :(得分:0)

this related question的答案表明了在Windows上与shell通信的更好方法:

import subprocess
result = subprocess.check_output('cmd /k dir c:\\', shell = True)