我想获取当前文件的目录路径。我试过了:
>>> os.path.abspath(__file__)
'C:\\python27\\test.py'
但是,如何检索目录的路径?
例如:
'C:\\python27\\'
对于正在运行的脚本的目录:
import pathlib
pathlib.Path(__file__).parent.absolute()
对于当前工作目录:
import pathlib
pathlib.Path().absolute()
对于正在运行的脚本的目录:
import os
os.path.dirname(os.path.abspath(__file__))
如果您的意思是当前工作目录:
import os
os.path.abspath(os.getcwd())
请注意, file
前后分别是两个下划线,而不仅仅是一个。
还要注意,如果您正在交互运行或已从文件以外的其他文件(例如数据库或在线资源)中加载了代码,则可能不会设置__file__
因为没有 “当前文件” 的概念。上面的答案假设运行文件中的 python 脚本的最常见情况。
从 Python 3 开始,建议使用Path
:
from pathlib import Path
print("File Path:", Path(__file__).absolute())
print("Directory Path:", Path().absolute())
文档: pathlib
注意:如果使用 Jupyter Notebook,则__file__
不会返回期望值,因此必须使用Path().absolute()
。
在 Python 3.x 中,我这样做:
from pathlib import Path
path = Path(__file__).parent.absolute()
说明:
Path(__file__)
是当前文件的路径。 .parent
为您提供文件所在的目录 。 .absolute()
提供了完整的绝对路径。 使用pathlib
是使用路径的现代方法。如果由于某种原因以后需要它作为字符串,只需执行str(path)
。