Python SUBSPROCESS.run在windows中不工作-系统找不到指定的文件

Python SUBSPROCESS.run在windows中不工作-系统找不到指定的文件,python,subprocess,Python,Subprocess,我试图在VisualSutdio代码中使用子流程模块,但一直出现错误。代码如下: import subprocess subprocess.run("dir") 或 错误是: Traceback (most recent call last): File "e:\Dropbox (Personal)\My Python\external\extrprg.py", line 2, in <module> subprocess.run("dir") File "E:\

我试图在VisualSutdio代码中使用子流程模块,但一直出现错误。代码如下:

import subprocess
subprocess.run("dir") 

错误是:

Traceback (most recent call last):
  File "e:\Dropbox (Personal)\My Python\external\extrprg.py", line 2, in <module>
    subprocess.run("dir")
  File "E:\Users\klo\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 472, in run
    with Popen(*popenargs, **kwargs) as process:
  File "E:\Users\klo\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "E:\Users\klo\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1178, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
回溯(最近一次呼叫最后一次):
文件“e:\Dropbox(Personal)\My Python\external\extrprg.py”,第2行,在
子进程运行(“dir”)
文件“E:\Users\klo\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py”,第472行,正在运行
使用Popen(*popenargs,**kwargs)作为流程:
文件“E:\Users\klo\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py”,第775行,在uu init中__
恢复信号,启动新会话)
文件“E:\Users\klo\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py”,第1178行,在执行子进程中
startupinfo)
FileNotFoundError:[WinError 2]系统找不到指定的文件

我希望python运行
dir
,并提供目录中文件夹的列表
dir
cmd.exe
中的一个命令,这意味着您要执行以下操作:

subprocess.run(['cmd.exe', '/c', 'dir'])

虽然在运行subprocess.call之后,subprocess.run现在可以工作,但它只在我使用“shell=True”时工作。没有它也不行。对此有什么解释吗?解释是,
dir
是一个shell命令,而不是一个程序。如果使用
shell=False
,则需要提供可执行文件的路径,而
dir
不是可执行文件。
subprocess.run(['cmd.exe', '/c', 'dir'])