文件路径 #

一、os.path模块 #

python
import os

# 当前工作目录
os.getcwd()

# 路径拼接
os.path.join('folder', 'subfolder', 'file.txt')

# 路径分割
os.path.split('/path/to/file.txt')
# ('/path/to', 'file.txt')

# 分离扩展名
os.path.splitext('file.txt')
# ('file', '.txt')

# 获取文件名
os.path.basename('/path/to/file.txt')  # 'file.txt'

# 获取目录名
os.path.dirname('/path/to/file.txt')  # '/path/to'

# 绝对路径
os.path.abspath('file.txt')

# 规范化路径
os.path.normpath('/path/../to/./file.txt')  # '/to/file.txt'

二、路径检查 #

python
import os

# 是否存在
os.path.exists('file.txt')

# 是文件
os.path.isfile('file.txt')

# 是目录
os.path.isdir('folder')

# 是绝对路径
os.path.isabs('/path/to/file')

# 是链接
os.path.islink('link')

三、pathlib模块(推荐) #

python
from pathlib import Path

# 创建Path对象
p = Path('folder/file.txt')

# 路径拼接
p = Path('folder') / 'subfolder' / 'file.txt'

# 属性
p.name      # 'file.txt'
p.stem      # 'file'
p.suffix    # '.txt'
p.parent    # Path('folder/subfolder')

# 方法
p.exists()
p.is_file()
p.is_dir()
p.resolve()  # 绝对路径

# 读取文件
content = p.read_text()
p.write_text('content')

# 遍历目录
for file in Path('.').iterdir():
    print(file)

# glob匹配
for file in Path('.').glob('*.txt'):
    print(file)

四、相对路径与绝对路径 #

python
import os
from pathlib import Path

# 相对路径转绝对路径
abs_path = os.path.abspath('file.txt')
abs_path = Path('file.txt').resolve()

# 绝对路径转相对路径
rel_path = os.path.relpath('/path/to/file.txt', '/path')
rel_path = Path('/path/to/file.txt').relative_to('/path')

五、总结 #

操作 os.path pathlib
拼接 os.path.join() Path() / 'sub'
文件名 os.path.basename() p.name
目录名 os.path.dirname() p.parent
扩展名 os.path.splitext() p.suffix
存在检查 os.path.exists() p.exists()
绝对路径 os.path.abspath() p.resolve()
最后更新:2026-03-16