在Python中获取文件的绝对路径和文件名,可以使用os.path
模块的abspath()
和basename()
方法,或结合Path.resolve()
和Path.name
(Path对象)。以下是具体实现方式及常见场景的解决方案:
-
使用
os.path
模块-
os.path.abspath()
:将相对路径转为绝对路径,例如:pythonCopy Code
import os abs_path = os.path.abspath("example.txt") # 输出:/home/user/example.txt
-
os.path.basename()
:从路径中提取文件名(含扩展名),例如:pythonCopy Code
file_name = os.path.basename(abs_path) # 输出:example.txt
-
-
使用
pathlib
模块(Python 3.4+)-
Path.resolve()
:解析符号链接并返回绝对路径,例如:pythonCopy Code
from pathlib import Path abs_path = Path("example.txt").resolve() # 输出:PosixPath('/home/user/example.txt')
-
Path.name
:直接获取文件名,例如:pythonCopy Code
file_name = abs_path.name # 输出:example.txt
-
-
常见场景扩展
- 处理符号链接:
Path.resolve()
会自动解析链接的真实路径。 - 路径拼接:用
os.path.join()
或Path
的/
运算符,确保跨平台兼容性。 - 分离文件名与扩展名:结合
os.path.splitext()
或Path.stem
/Path.suffix
。
- 处理符号链接:
根据需求选择os.path
(兼容旧代码)或pathlib
(现代推荐),注意处理路径分隔符和符号链接的差异。