获取python程序所在的目录下

在Python开发中,获取程序所在目录应优先使用__file__结合pathlib或os.path解析绝对路径,而不要依赖当前工作目录。__file__能准确指向脚本位置,适用于大多数运行环境;pathlib写法更现代、可读性更强。实际项目中应统一封装路径逻辑,避免字符串拼接,并注意打包和不同运行环境带来的差异。掌握路径管理是Python工程化开发的重要基础能力。

作者:Joshua Lee发布时间:2026-03-29 03:38阅读时长:14 分钟
获取python程序所在的目录下
常见问答
Q
如何在Python中获取当前脚本所在的目录?

我想知道如何用Python代码获取当前执行的脚本文件所在的目录路径。

A

使用os模块获取脚本目录

可以通过导入os模块并使用os.path.dirname和__file__变量来获取脚本所在目录。示例代码:

import os

script_dir = os.path.dirname(os.path.abspath(file))
print(script_dir)

Q
Python程序目录路径和当前工作目录有什么区别?

在Python中,程序所在目录和当前工作目录不一样吗?如何区分两者?

A

程序目录与工作目录区别说明

程序目录是指Python脚本本身所在的位置,而当前工作目录是Python程序运行时所在的操作系统目录,它可以通过os.getcwd()获取。两者可能不同,获取程序目录最好使用__file__变量相关的方法。

Q
在exe打包后的程序中,如何获取程序运行的目录?

如果我用PyInstaller等工具把Python程序打包成exe文件,怎么获取程序的运行目录?

A

获取打包后程序目录的方法

打包成exe后,__file__变量可能不可用。可以使用sys模块配合os.getcwd()或者sys._MEIPASS变量(PyInstaller特有)来获取程序目录。例如:

import sys
import os

if getattr(sys, 'frozen', False):
program_dir = sys._MEIPASS
else:
program_dir = os.path.dirname(os.path.abspath(file))
print(program_dir)

* 文章含AI生成内容
 

文章互动

这篇文章对你有帮助吗?