You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:44:29