一、简介
pathlib是Python 3.4及以上版本中的一个内置模块,它提供了一种面向对象的方式来处理文件系统路径。使用pathlib,你可以更容易地创建、操作、查询路径,并且代码更加简洁和易读。
二、基本使用
1.创建Path对象
使用pathlib的第一步是创建一个Path对象,它代表一个文件或目录的路径。
from pathlib import Path
# 创建一个Path对象,表示当前工作目录
p = Path('.')
# 创建一个Path对象,表示绝对路径
p_absolute = Path('/home/user/documents')
# 创建一个Path对象,表示相对路径
p_relative = Path('../images')
2.路径操作
Path对象提供了许多方法来操作路径。
# 获取路径的字符串表示
path_str = p.absolute() # 获取绝对路径
print(path_str)
# 获取路径的各个部分
parent = p.parent # 获取父目录
name = p.name # 获取路径名(如果是文件)或目录名
stem = p.stem # 获取文件名(不包括扩展名)
suffix = p.suffix # 获取文件扩展名
# 拼接路径
new_path = p / 'new_folder' # 使用斜杠操作符拼接路径
print(new_path)
# 判断路径是否存在
exists = p.exists()
print(exists)
# 判断路径是否是文件或目录
is_file = p.is_file()
is_dir = p.is_dir()
print(is_file, is_dir)
3.文件操作
Path对象还提供了很多文件操作的方法。
# 读取文件内容
file_content = p.read_text()
print(file_content)
# 写入文件内容
p.write_text('Hello, Pathlib!')
# 检查文件是否可读写
is_readable = p.is_readable()
is_writable = p.is_writable()
print(is_readable, is_writable)
# 删除文件
p.unlink()
# 列出目录中的所有文件和子目录
for child in p.iterdir():
print(child)
三、高级特性
1.递归搜索
Path对象允许你递归地搜索目录和文件。
# 递归搜索指定扩展名的文件
for file in Path('.').rglob('*.txt'):
print(file)
2.文件权限
你可以使用Path对象来检查或修改文件权限。
# 检查文件权限
permissions = p.stat().st_mode
print(permissions)
# 修改文件权限
p.chmod(0o755) # 设置文件权限为755
3.文件和目录的创建
Path对象可以方便地创建新的目录和文件。
# 创建新目录
new_dir = Path('new_directory')
new_dir.mkdir()
# 创建新文件
new_file = Path('new_file.txt')
new_file.touch()
四、总结
pathlib模块为Python提供了强大且易用的文件路径操作功能。通过使用Path对象,你可以更轻松地处理文件路径,进行路径操作,读取和写入文件,以及进行高级的文件和目录操作。对于需要进行文件系统操作的Python程序来说,pathlib是一个不可或缺的工具。
领取专属 10元无门槛券
私享最新 技术干货