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

Windows下Python脚本无法读取同目录子文件夹文件求助

解决Windows下Python脚本无法读取同目录文件的问题

嘿Max,这个问题我之前帮好几个Windows用户捋清楚过,核心原因其实很简单:Python默认会从「当前工作目录」(也就是你运行脚本时命令行所在的目录)查找文件,而不是你的脚本实际存放的目录。咱们用两种可靠的方法来解决这个问题:

方法1:用os.path模块(兼容所有Python版本)

这是最经典的解决方案,通过__file__变量获取脚本自身的路径,再拼接目标文件的路径:

import os

# 获取当前脚本的绝对路径,再提取所在目录
script_directory = os.path.dirname(os.path.abspath(__file__))
# 跨平台拼接目标文件路径(Windows下自动用反斜杠)
target_file = os.path.join(script_directory, "commands", "command.py")

# 安全打开文件(用with语句会自动关闭文件,避免资源泄漏)
with open(target_file, "r") as file:
    # 这里写你的文件操作逻辑,比如读取内容
    file_content = file.read()

方法2:用pathlib模块(Python 3.4+推荐)

如果你用的是较新的Python版本,pathlib提供了更直观的面向对象路径操作,代码更简洁:

from pathlib import Path

# 获取脚本所在的绝对目录
script_directory = Path(__file__).parent.resolve()
# 用/直接拼接路径,自动适配Windows的路径规则
target_file = script_directory / "commands" / "command.py"

with open(target_file, "r") as file:
    file_content = file.read()

为什么原来的写法会出错?

举个例子:如果你的脚本放在D:\Projects\MyScript里,但你在C:\Users\YourName目录下打开命令行运行python D:\Projects\MyScript\main.py,这时候Python的当前工作目录是C:\Users\YourName,它会去C:\Users\YourName\commands\command.py找文件,自然找不到啦。

用上面两种方法,不管你在哪里运行脚本,都会精准定位到脚本所在目录下的文件~

内容的提问来源于stack exchange,提问作者profound.donut

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:01:04