Python获取文件路径的几种方法
最常用可靠的方法是用file配合pathlib.Path(__file__).parent.resolve()或os.path.dirname(os.path.abspath(__file__))获取当前文件所在目录;推荐pathlib(Python3.4+),因其现代、可读性强、跨平台;切勿依赖os.getcwd(),因其返回运行时工作目录而非文件所在目录。
最常用可靠的方法是用 file 配合 pathlib.Path(__file__).parent.resolve() 或 os.path.dirname(os.path.abspath(__file__)) 获取当前文件所在目录;推荐 pathlib(Python 3.4+),因其现代、可读性强、跨平台;切勿依赖 os.getcwd(),因其返回运行时工作目录而非文件所在目录。

用 __file__ 配合 os.path.dirname() 或 pathlib.Path(__file__).parent 就能拿到当前 Python 文件所在的目录路径,这是最常用、最可靠的方法。
用 pathlib(推荐,Python 3.4+)
pathlib 更现代、可读性好,跨平台无烦恼:
from pathlib import Path获取当前文件所在目录(绝对路径)
file_dir = Path(file).parent.resolve() print(file_dir) # 例如:/home/user/project/src
获取上一级目录
parent_dir = file_dir.parent
获取某个子路径(比如同级的 config.json)
config_path = file_dir / "config.json"
用 os.path(兼容老版本)
如果还在用较老的 Python 版本,os.path 同样稳定:
import os获取当前文件所在目录(绝对路径)
file_dir = os.path.dirname(os.path.abspath(file)) print(file_dir) # 例如:C:\Users\name\project\src
拼接文件路径(推荐用 os.path.join,避免手动加斜杠)
log_path = os.path.join(file_dir, "logs", "app.log")
注意:别用相对路径或当前工作目录
os.getcwd() 返回的是“运行时的工作目录”,不是文件所在目录——容易出错,尤其用 IDE、打包工具(如 PyInstaller)或从其他路径执行脚本时:
- ✅ 正确:基于
__file__—— 总指向当前 .py 文件位置 - ❌ 危险:依赖
os.getcwd()—— 可能是桌面、项目根目录,甚至临时目录
小技巧:封装成函数复用
如果多个地方要用,可以简单封装一下:
from pathlib import Pathdef get_script_dir(): return Path(file).parent.resolve()
使用
data_dir = get_script_dir() / "data" config_file = get_script_dir() / "settings.yaml"
基本上就这些。记住核心:认准 __file__,搭配 pathlib 或 os.path 解析,不复杂但容易忽略。
Adobe Acrobat Pro 是面向办公、法务、财务、教育及出版用户的专业PDF处理软件,可在Mac上创建、编辑、转换、合并和保护文档,并提供OCR文字识别、表单、批注、内容比较、敏感信息遮盖及电子签名功能。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
AutoCAD 是 Autodesk 推出的专业计算机辅助设计软件,Windows 版支持精确二维绘图、三维实体与曲面建模、图纸标注、布局发布和任务自动化,并包含多套行业专业化工具组合,适用于建筑、机械、电气、工程建设及制造设计人员。
Adobe Acrobat Pro 是面向专业 PDF 工作的综合解决方案,可在 Windows 中创建、编辑、转换、比较、整理和保护文档,并支持表单、电子签名、扫描件文字识别及敏感信息永久遮盖。订阅还包含网页、移动服务和云端协作能力,
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。













