os.path 用法举例
os.path 是 Python 中用于处理文件路径的模块,提供了跨平台的路径操作方法。以下是常见用法及示例:
1. 路径拼接
import os
path1 = "/home/user"
path2 = "documents/file.txt"
full_path = os.path.join(path1, path2)
print(full_path) # 输出: /home/user/documents/file.txt (Windows 下为 \)
2. 获取路径的目录名和文件名
path = "/home/user/documents/file.txt"
dir_name = os.path.dirname(path)
print(dir_name) # 输出: /home/user/documents
file_name = os.path.basename(path)
print(file_name) # 输出: file.txt
3. 拆分路径与扩展名
path = "/home/user/file.tar.gz"
# 拆分为 (root, ext),仅最后一级扩展名
root, ext = os.path.splitext(path)
print(root) # 输出: /home/user/file.tar
print(ext) # 输出: .gz
# 拆分所有部分(Python 3.9+)
parts = os.path.split(path)
print(parts) # 输出: ('/home/user', 'file.tar.gz')
4. 检查路径是否存在或类型
path = "/home/user/file.txt"
# 检查是否存在
exists = os.path.exists(path)
print(exists) # True 或 False
# 检查是否为文件
is_file = os.path.isfile(path)
print(is_file) # True 或 False
# 检查是否为目录
is_dir = os.path.isdir(path)
print(is_dir) # True 或 False
5. 获取绝对路径
relative_path = "../data/file.txt"
abs_path = os.path.abspath(relative_path)
print(abs_path) # 输出当前目录的绝对路径(如 /home/user/../data/file.txt)
6. 规范化路径(处理 . 和 ..)
path = "/home/user/../data/./file.txt"
normalized = os.path.normpath(path)
print(normalized) # 输出: /home/data/file.txt
7. 获取文件大小和修改时间
path = "/home/user/file.txt"
# 文件大小(字节)
size = os.path.getsize(path)
print(size)
# 修改时间(时间戳)
mtime = os.path.getmtime(path)
print(mtime)
8. 分割路径为多部分
path = "/home/user/documents/file.txt"
parts = os.path.split(path) # 分割为 (目录, 文件名)
print(parts) # 输出: ('/home/user/documents', 'file.txt')
# 递归分割所有部分
drive, path_parts = os.path.splitdrive(path) # Windows 下获取盘符
print(drive, path_parts)
9. 检查路径是否为绝对路径
path1 = "/home/user/file.txt"
path2 = "documents/file.txt"
print(os.path.isabs(path1)) # True
print(os.path.isabs(path2)) # False
10. 扩展:os.path 与 pathlib(Python 3.4+)
现代 Python 推荐使用 pathlib 模块(面向对象风格):
from pathlib import Path
path = Path("/home/user/file.txt")
print(path.parent) # 目录名
print(path.name) # 文件名
print(path.suffix) # 扩展名
注意事项
os.path的方法会自动适应操作系统(如 Windows 用\,Linux 用/)。- 路径操作不会验证路径是否真实存在,仅处理字符串。
通过 os.path,可以安全地处理跨平台路径问题,避免手动拼接字符串导致的错误。

浙公网安备 33010602011771号