此处,当前文件为"G:\Python\my_modules\normal\a.py",试图获取当前文件以下信息:

获取当前文件的路径:

print(__file__) 

# 结果:
g:\Python\my_modules\normal\a.py

判断当前文件路径是否是完整路径:

import os

print(os.path.isabs(__file__))

# 结果:
True

获取当前文件的完整路径:

此处"__file__"返回的就是完整路径,可不用此操作。

import os

print(os.path.abspath(__file__))

# 结果:
g:\Python\my_modules\normal\a.py

获取当前文件所在目录:

import os

print(os.path.dirname(__file__))

# 结果:
g:\Python\my_modules\normal

获取当前文件的文件名(不含所在目录):

import os

print(os.path.basename(__file__))

# 结果:
a.py

同时获取当前文件的所在目录和文件名(不含目录):

import os

print(os.path.split(__file__)) 

# 结果:(元组形式)
('g:\\Python\\my_modules\\normal', 'a.py')

同时获取当前文件的所在目录和文件名(不含扩展名)以及扩展名:

import os

print(os.path.splitext(__file__))

# 结果:
('g:\\Python\\my_modules\\normal\\a', '.py')

获取当前文件的扩展名:

import os

print(os.path.splitext(__file__)[1])

# 结果:
.py

  pathlib库,代码更清晰,跨平台兼容性更好。

官方文档:pathlib — Object-oriented filesystem paths — Python 3.13.7 documentation

from pathlib import Path

print(Path(__file__))                       # 当前文件路径,此处也是完整路径
print(Path(__file__).is_absolute())         # 当前文件路径是否是完整路径
print(Path(__file__).absolute())            # 当前文件的完整路径
print(Path(__file__).parent)                # 当前文件所在目录
print(Path(__file__).name)                  # 当前文件的文件名(不包括所在目录)
print(Path(__file__).stem)                  # 当前文件的文件名(不包括所在目录和扩展名)
print(Path(__file__).suffix)                # 当前文件扩展名

# 结果:
g:\Python\my_modules\normal\a.py
True
g:\Python\my_modules\normal\a.py
g:\Python\my_modules\normal
a.py
a
.py

更多推荐