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

Python脚本PyCharm运行正常,CMD执行提示找不到文件的解决方法

问题:PyCharm与CMD运行Python代码的路径差异问题

我的代码如下:

import os
print(list(os.listdir('test')))

在PyCharm中运行该代码时,输出结果为:['test.txt']。

但在Windows命令提示符(CMD)中运行同一文件时,出现如下报错:

(MLspraak) C:\Users\phili>python C:\Users\phili\PycharmProjects\MLspraak\test.py
Traceback (most recent call last):
  File "C:\Users\phili\PycharmProjects\MLspraak\test.py", line 2, in <module>
    print(list(os.listdir('test')))
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'test'

我使用了虚拟环境(venv),且确认运行的是同一Python版本,请问为何会出现这种运行差异?该如何解决?


原因与解决方案

原因

  • PyCharm默认将项目根目录(此处为C:\Users\phili\PycharmProjects\MLspraak)设为工作目录,代码中的相对路径test是相对于该根目录的,因此能找到对应文件夹。
  • CMD中运行脚本时,工作目录是你当前所在的路径(此处为C:\Users\phili),代码会去这个路径下查找test文件夹,自然找不到目标目录。

解决方案

方法1:CMD中切换到项目根目录再运行

先进入项目所在文件夹,再执行脚本:

(MLspraak) C:\Users\phili>cd C:\Users\phili\PycharmProjects\MLspraak
(MLspraak) C:\Users\phili\PycharmProjects\MLspraak>python test.py

方法2:修改代码使用绝对路径

通过__file__获取脚本所在的绝对路径,再拼接目标文件夹路径,确保无论在哪运行都能定位到目录:

import os
# 获取当前脚本所在的目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接test文件夹的绝对路径
test_dir = os.path.join(script_dir, 'test')
print(list(os.listdir(test_dir)))

方法3:在CMD中指定工作目录运行

用cd /d切换目录并同时运行脚本,一行命令完成:

(MLspraak) C:\Users\phili>cd /d C:\Users\phili\PycharmProjects\MLspraak && python test.py

内容的提问来源于stack exchange,提问作者Philip T 2007

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:37:09