Python 3
中的这个简单程序会引发错误。可能是什么原因?安装/重新安装Python 3.5/3.6
后出现此问题。我的PC(Windows 10机器)上也安装了Python 2.7
。
import subprocess
out = subprocess.check_output(['dir'])
错误消息:
文件" C:\ Python36 \ lib \ subprocess.py",第336行,在check_output中 ** kwargs).stdout
文件" C:\ Python36 \ lib \ subprocess.py",第403行,运行中 以Popen(* popenargs,** kwargs)为过程:
文件" C:\ Python36 \ lib \ subprocess.py",第707行, init restore_signals,start_new_session)
文件" C:\ Python36 \ lib \ subprocess.py",第990行,在_execute_child中 STARTUPINFO)
FileNotFoundError:[WinError 2]系统找不到该文件 指定的
答案 0 :(得分:3)
它不是可执行文件,而是shell built-in。 Python子进程模块无法找到它,因此出现错误。
如果您想使用子进程模块,请使用一些现有的二进制文件,例如: python
,notepad
或ping
。
如果您需要列出文件夹内容,请使用os.listdir
或os.walk
。
答案 1 :(得分:1)
似乎“dir”不在你的道路上。我不知道Windows上这个可执行文件的完整路径,但也许你应该用c:\ windwos \ system \ dir
替换dir或者最好的解决方案是使用os模块中的函数列出目录:
os.listdir(path)
答案 2 :(得分:0)
除了@grundic
它不是可执行文件,而是shell built-in。 [...]
如果你真的想要执行cmd内置命令,你必须在你的情况下执行cmd.exe /c COMMAND_HERE
:
import subprocess
out = subprocess.check_output(['cmd.exe', '/c', 'dir'])
/c
表示执行后cmd.exe
关闭