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

如何让Python默认以脚本所在目录为工作目录查找外部文件?

解决Python脚本默认以自身所在目录查找文件的问题

问题根源在于Python默认的当前工作目录是你启动脚本时的终端路径(或双击脚本时的系统默认路径),而非脚本文件本身所在的目录。要实现优先在脚本所在目录查找同目录文件,有两种简洁方案:

方案1:切换当前工作目录到脚本所在路径

通过代码将工作目录切换为脚本自身的目录,之后直接使用文件名即可访问同目录文件:

import os

# 获取脚本的绝对目录路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 切换当前工作目录到脚本目录
os.chdir(script_dir)

# 直接打开同目录的info.txt
with open('info.txt', 'r') as f:
    content = f.read()
    # 后续文件处理逻辑

方案2:拼接文件的绝对路径(不切换工作目录)

如果不想改变当前工作目录,可直接拼接脚本目录与文件名,生成绝对路径访问文件:

import os

# 获取脚本的绝对目录路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接得到info.txt的绝对路径
file_path = os.path.join(script_dir, 'info.txt')

# 通过绝对路径打开文件
with open(file_path, 'r') as f:
    content = f.read()
    # 后续文件处理逻辑

注意事项

  • __file__变量仅在脚本文件中有效,交互式Python环境(如命令行shell)中不存在该变量。
  • 若需将脚本打包为可执行文件(如用PyInstaller),需注意部分打包工具会修改__file__的指向,需参考对应工具的文档调整,但普通脚本移动目录的场景下,上述方案完全适用。

内容的提问来源于stack exchange,提问作者Johnny Canuck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:57:13