在Windows上运行,以下Python程序生成上述输出(输出变量的内容)
import commands
cmd = "dir"
(output) = commands.getoutput(cmd)
print output
非常有趣且令人沮丧。有人能指点我解释一下吗?
答案 0 :(得分:8)
请参阅documentation:
cmd实际上是以{cmd; } 2>& 1
{
来自哪个地方。您应该使用subprocess
代替。
import subprocess
p = subprocess.Popen(['dir'],stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
stdout,stderr = p.communicate()
在这种特定情况下需要shell=True
,因为dir是内部DOS命令。通常,应该提供可执行文件的完整路径并保持shell禁用。