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

Python如何获取脚本所在绝对路径 实现任意位置运行时正常读取文本文件

解决方案

你当前使用的相对路径是基于进程工作目录(即执行脚本时终端所在的目录)解析的,而非脚本文件本身的存储目录,因此切换运行位置后就会出现文件找不到的报错。

推荐方案(Python 3.4+,官方推荐跨平台实现)

使用标准库pathlib实现,语法简洁,自动适配多系统路径规则:

from pathlib import Path

# 获取当前脚本所在目录的绝对路径
script_dir = Path(__file__).absolute().parent
# 拼接目标文件的绝对路径
help_text_path = script_dir / "files" / "help_text.txt"

# 用with上下文管理器自动管理文件句柄,避免资源泄漏
with open(help_text_path, "r", encoding="utf-8") as f:
    help_text_content = f.read()
print(help_text_content)

兼容旧版本Python方案(os模块实现)

如果需要适配Python 2或更早的3.x版本,可以用os模块实现相同逻辑:

import os

# 获取当前脚本所在目录的绝对路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 自动适配系统路径分隔符拼接目标路径
help_text_path = os.path.join(script_dir, "files", "help_text.txt")

with open(help_text_path, "r", encoding="utf-8") as f:
    help_text_content = f.read()
print(help_text_content)

说明

  • 两种方案均会动态读取脚本自身的存储位置生成绝对路径,无需写死固定前缀,适配用户任意安装位置的需求
  • 路径拼接逻辑自动适配Windows、Linux、macOS的路径分隔符差异,无需手动处理
  • 显式指定encoding="utf-8"可以避免不同系统默认编码不一致导致的读文件乱码问题

内容的提问来源于stack exchange,提问作者Russ Steighler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 14:15:07