如何获取当前文件目录的完整路径?
我该怎么获取当前文件的目录路径呢?
我试过这个:
>>> os.path.abspath(__file__)
'C:\\python27\\test.py'
但是我想要的是:
'C:\\python27\\'
12 个回答
109
在 Python 3.x 中,我这样做:
from pathlib import Path
path = Path(__file__).parent.absolute()
解释:
Path(__file__)
是当前文件的路径。.parent
会给你这个文件所在的 文件夹。.absolute()
会给你这个文件的 完整绝对路径。
使用 pathlib
是处理路径的现代方法。如果你之后需要把它当作字符串使用,只需用 str(path)
转换一下就可以了。
199
从Python 3开始,使用pathlib
里的Path
是推荐的做法:
from pathlib import Path
print("File Path:", Path(__file__).absolute())
print("Directory Path:", Path().absolute()) # Directory of current working directory, not __file__
注意:如果你在使用Jupyter Notebook,__file__
不会返回你想要的值,所以必须使用Path().absolute()
。
2713
特殊变量 __file__
保存了当前文件的路径。通过这个路径,我们可以使用 pathlib
或者 os.path
模块来获取文件所在的目录。
Python 3
要获取正在运行的脚本的目录,可以使用:
import pathlib
pathlib.Path(__file__).parent.resolve()
要获取当前工作目录,可以使用:
import pathlib
pathlib.Path().resolve()
Python 2 和 3
要获取正在运行的脚本的目录,可以使用:
import os
os.path.dirname(os.path.abspath(__file__))
如果你想获取当前工作目录,可以使用:
import os
os.path.abspath(os.getcwd())
注意,file
前后都有两个下划线,而不是一个。
另外,如果你是在交互模式下运行代码,或者是从文件以外的地方加载代码(比如数据库或在线资源),那么 __file__
可能不会被设置,因为没有“当前文件”的概念。上面的内容假设你是在运行一个存储在文件中的 Python 脚本,这是最常见的情况。