'{'不被识别为内部或外部命令,可操作程序或批处理文件

sza*_*gab 3 python

在Windows上运行,以下Python程序产生上述输出(输出变量的内容)

import commands

cmd = "dir"
(output) = commands.getoutput(cmd)
print output
Run Code Online (Sandbox Code Playgroud)

非常有趣和令人沮丧.有人可以指点我的解释吗?

mgi*_*son 8

查看文档:

cmd实际上是以{cmd; } 2>&1

这是哪里{来的.你应该使用subprocess.

import subprocess
p = subprocess.Popen(['dir'],stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
stdout,stderr = p.communicate()
Run Code Online (Sandbox Code Playgroud)

shell=True需要在该特定情况下,dir是一个内部DOS命令.通常,应该提供可执行文件的完整路径并保持shell禁用.

  • 文档还指出,`commands` 模块仅适用于 Unix 平台 (2认同)