Windows10下Python调用subprocess.call('dir')提示找不到文件的问题
解决Windows下subprocess调用
dir命令的错误 嘿,碰到这个问题很正常,我来给你捋清楚原因和解决办法:
错误原因
在Windows系统里,dir是cmd.exe的内置命令,并不是一个独立的可执行程序(不像ping或者notepad那样有单独的.exe文件)。当你直接用subprocess.call(["dir"])时,subprocess会去系统里找名为dir.exe的可执行文件,自然找不到,所以抛出错误。
两种可行的解决方案
方案1:使用shell=True参数
让subprocess通过系统shell(也就是cmd.exe)来执行命令,这样就能识别内置命令了:
import subprocess subprocess.call("dir", shell=True) # 或者用列表形式也可以 subprocess.call(["dir"], shell=True)
⚠️ 注意:如果你的命令里包含用户输入的内容,不要用shell=True,会有命令注入的安全风险。
方案2:显式调用cmd.exe执行命令
这是更安全的方式,不需要依赖shell=True,直接调用cmd并传入执行参数:
import subprocess # /c 参数表示让cmd执行完指定命令后退出 subprocess.call(["cmd.exe", "/c", "dir"])
这样就能正常列出当前目录的内容啦~
内容的提问来源于stack exchange,提问作者bzm3r
相关产品推荐
相关产品推荐

