pathlib
是 Python 3.4 引入的一个用于处理文件路径的库,它提供了面向对象的路径操作方式,比传统的 os.path
更加直观和易用。
Path
类from pathlib import Path
# 当前目录 p = Path('.') print(p) # 输出: . # 绝对路径 p = Path('/home/user/documents') print(p) # 输出: /home/user/documents # 相对路径 p = Path('documents/file.txt') print(p) # 输出: documents/file.txt
p = Path('/home/user') / 'documents' / 'file.txt' print(p) # 输出: /home/user/documents/file.txt
p = Path('/home/user/documents/file.txt') # 获取文件名 print(p.name) # 输出: file.txt # 获取文件名(不带扩展名) print(p.stem) # 输出: file # 获取扩展名 print(p.suffix) # 输出: .txt # 获取父目录 print(p.parent) # 输出: /home/user/documents # 获取所有父目录 for parent in p.parents: print(parent)
p = Path('/home/user/documents/file.txt') print(p.exists()) # 输出: True 或 False
p = Path('/home/user/documents/file.txt') print(p.is_file()) # 输出: True 或 False print(p.is_dir()) # 输出: True 或 False
p = Path('/home/user/new_directory') p.mkdir(exist_ok=True) # exist_ok=True 表示如果目录已存在则不报错
# 删除文件 p = Path('/home/user/documents/file.txt') p.unlink() # 删除目录 p = Path('/home/user/documents') p.rmdir() # 只能删除空目录
p = Path('/home/user/documents') for child in p.iterdir(): print(child)
# 查找所有 .txt 文件 p = Path('/home/user/documents') for txt_file in p.glob('*.txt'): print(txt_file) # 递归查找所有 .txt 文件 for txt_file in p.rglob('*.txt'): print(txt_file)
# 读取文件内容 p = Path('/home/user/documents/file.txt') content = p.read_text() print(content) # 写入文件内容 p.write_text('Hello, World!')
p = Path('documents/file.txt') print(p.absolute()) # 输出: /home/user/documents/file.txt
p = Path('/home/user/documents/file.txt') print(p.parts) # 输出: ('/', 'home', 'user', 'documents', 'file.txt')
p = Path('/home/user/documents/file.txt') stat = p.stat() print(stat.st_size) # 文件大小 print(stat.st_mtime) # 最后修改时间
p = Path('/home/user/documents/file.txt') new_p = p.rename('/home/user/documents/new_file.txt')
p = Path.cwd() print(p) # 输出: /home/user
p = Path.home() print(p) # 输出: /home/user
p = Path('/home/user/documents/file.txt') print(str(p)) # 输出: /home/user/documents/file.txt
p1 = Path('/home/user/documents/file.txt') p2 = Path('/home/user/documents/file.txt') print(p1 == p2) # 输出: True
p = Path('/home/user/documents/file.txt') print(p.as_uri()) # 输出: file:///home/user/documents/file.txt
p = Path('/home/user/../documents/file.txt') print(p.resolve()) # 输出: /home/documents/file.txt
p = Path('/home/user/documents/link') print(p.resolve()) # 输出符号链接指向的实际路径
p = Path('/home/user/documents/file.txt') p.symlink_to('/home/user/documents/link')
p = Path('/home/user/documents/link') print(p.readlink()) # 输出硬链接指向的实际路径
p = Path('/home/user/documents/file.txt') p.link_to('/home/user/documents/link')
p = Path('/home/user/documents/file.txt') print(p.stat().st_nlink) # 输出硬链接数
p = Path('/home/user/documents/file.txt') print(p.stat().st_ino) # 输出 inode 号
p = Path('/home/user/documents/file.txt') print(p.stat().st_dev) # 输出设备号
p = Path('/home/user/documents/file.txt') print(p.stat().st_mode) # 输出权限
p = Path('/home/user/documents/file.txt') print(p.stat().st_uid) # 输出所有者 print(p.stat().st_gid) # 输出组
p = Path('/home/user/documents/file.txt') print(p.stat().st_ctime) # 输出创建时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_atime) # 输出最后访问时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_mtime) # 输出最后修改时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统信息
p = Path('/home/user/documents/file.txt') print(p.stat().st_blksize) # 输出文件系统块大小
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统块数
p = Path('/home/user/documents/file.txt') print(p.stat().st_ino) # 输出文件系统 inode 号
p = Path('/home/user/documents/file.txt') print(p.stat().st_dev) # 输出文件系统设备号
p = Path('/home/user/documents/file.txt') print(p.stat().st_mode) # 输出文件系统权限
p = Path('/home/user/documents/file.txt') print(p.stat().st_uid) # 输出文件系统所有者 print(p.stat().st_gid) # 输出文件系统组
p = Path('/home/user/documents/file.txt') print(p.stat().st_ctime) # 输出文件系统创建时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_atime) # 输出文件系统最后访问时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_mtime) # 输出文件系统最后修改时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统信息
p = Path('/home/user/documents/file.txt') print(p.stat().st_blksize) # 输出文件系统块大小
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统块数
p = Path('/home/user/documents/file.txt') print(p.stat().st_ino) # 输出文件系统 inode 号
p = Path('/home/user/documents/file.txt') print(p.stat().st_dev) # 输出文件系统设备号
p = Path('/home/user/documents/file.txt') print(p.stat().st_mode) # 输出文件系统权限
p = Path('/home/user/documents/file.txt') print(p.stat().st_uid) # 输出文件系统所有者 print(p.stat().st_gid) # 输出文件系统组
p = Path('/home/user/documents/file.txt') print(p.stat().st_ctime) # 输出文件系统创建时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_atime) # 输出文件系统最后访问时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_mtime) # 输出文件系统最后修改时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统信息
p = Path('/home/user/documents/file.txt') print(p.stat().st_blksize) # 输出文件系统块大小
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统块数
p = Path('/home/user/documents/file.txt') print(p.stat().st_ino) # 输出文件系统 inode 号
p = Path('/home/user/documents/file.txt') print(p.stat().st_dev) # 输出文件系统设备号
p = Path('/home/user/documents/file.txt') print(p.stat().st_mode) # 输出文件系统权限
p = Path('/home/user/documents/file.txt') print(p.stat().st_uid) # 输出文件系统所有者 print(p.stat().st_gid) # 输出文件系统组
p = Path('/home/user/documents/file.txt') print(p.stat().st_ctime) # 输出文件系统创建时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_atime) # 输出文件系统最后访问时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_mtime) # 输出文件系统最后修改时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统信息
p = Path('/home/user/documents/file.txt') print(p.stat().st_blksize) # 输出文件系统块大小
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统块数
p = Path('/home/user/documents/file.txt') print(p.stat().st_ino) # 输出文件系统 inode 号
p = Path('/home/user/documents/file.txt') print(p.stat().st_dev) # 输出文件系统设备号
p = Path('/home/user/documents/file.txt') print(p.stat().st_mode) # 输出文件系统权限
p = Path('/home/user/documents/file.txt') print(p.stat().st_uid) # 输出文件系统所有者 print(p.stat().st_gid) # 输出文件系统组
p = Path('/home/user/documents/file.txt') print(p.stat().st_ctime) # 输出文件系统创建时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_atime) # 输出文件系统最后访问时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_mtime) # 输出文件系统最后修改时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统信息
p = Path('/home/user/documents/file.txt') print(p.stat().st_blksize) # 输出文件系统块大小
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统块数
p = Path('/home/user/documents/file.txt') print(p.stat().st_ino) # 输出文件系统 inode 号
p = Path('/home/user/documents/file.txt') print(p.stat().st_dev) # 输出文件系统设备号
p = Path('/home/user/documents/file.txt') print(p.stat().st_mode) # 输出文件系统权限
p = Path('/home/user/documents/file.txt') print(p.stat().st_uid) # 输出文件系统所有者 print(p.stat().st_gid) # 输出文件系统组
p = Path('/home/user/documents/file.txt') print(p.stat().st_ctime) # 输出文件系统创建时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_atime) # 输出文件系统最后访问时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_mtime) # 输出文件系统最后修改时间
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统信息
p = Path('/home/user/documents/file.txt') print(p.stat().st_blksize) # 输出文件系统块大小
p = Path('/home/user/documents/file.txt') print(p.stat().st_blocks) # 输出文件系统块数
p = Path('/home/user/documents/file.txt') print(p.stat().st_ino) # 输出文件系统 inode 号