1. Pathlib介绍
Pathlib是Python标准库中用于处理文件系统路径的模块。在当前操作系统上,它可以自动跨越正斜杠,反斜杠和双斜杠等路径分隔符之间进行转化,因此使编写跨平台Python代码变得更加容易。它还提供了一组方法来处理文件系统,例如文件 I/O、目录操作,还支持许多用于检测和操作文件系统路径的常用功能。
2. Path类
Path类是pathlib模块的主要类,它用于处理文件系统路径。 Path类参考了UNIX文件系统的规则。
2.1 创建Path对象
可以使用路径字符串来创建 Path 对象
from pathlib import Path
path = Path('/usr/local/bin')
print(type(path)) # <class 'pathlib.PosixPath'>
或者从已存在的一个对象转换得到 Path 对象
from pathlib import Path
# This is the path created in the last example
path = Path('/usr/local/bin')
# converting to another path
new_path = path / 'python'
print(new_path) # /usr/local/bin/python
2.2 获取路径信息
Path对象提供了许多用于获取路径信息的方法
2.2.1 获取目录名和文件名
使用 Path 对象的 name 属性和 parent 属性,可以获取路径中文件/目录的名称和其父目录的路径
from pathlib import Path
path = Path('/usr/local/bin/python')
print(path.name) # python
print(path.parent) # /usr/local/bin
2.2.2 获取路径的根目录
使用 anchor 可以获取路径的根目录
from pathlib import Path
path = Path('/usr/local/bin/python')
print(path.anchor) # /
2.2.3 判断路径是否是绝对路径
使用 is_absolute() 可以判断路径是否是绝对路径
from pathlib import Path
path = Path('/usr/local/bin/python')
print(path.is_absolute()) # True
2.2.4 获取文件扩展名
使用 suffix 可以获取文件的扩展名,包括点号
from pathlib import Path
path = Path('/usr/local/bin/python.exe')
print(path.suffix) # .exe
2.2.5 获取文件名不包括扩展名
使用 stem 可以获取文件的名字,不包括扩展名
from pathlib import Path
path = Path('/usr/local/bin/python.exe')
print(path.stem) # python
2.3 检查路径是否存在
使用 exists() 可以判断路径是否存在
from pathlib import Path
path = Path('/usr/local/bin')
print(path.exists()) # True
2.4 文件操作
使用 Path 对象的方法进行文件操作
2.4.1 创建文件
可以使用 touch() 创建文件,如果文件已经存在,则修改文件的时间戳
from pathlib import Path
file = Path('sample.txt')
file.touch() # 创建文件sample.txt
2.4.2 删除文件
可以使用 unlink() 删除文件
from pathlib import Path
file = Path('sample.txt')
file.unlink() # 删除文件sample.txt
2.4.3 复制文件
可以使用 copy() 复制文件
from pathlib import Path
file = Path('sample.txt')
new_file = file.copy() # 复制文件sample.txt到new_sample.txt
2.4.4 重命名文件
可以使用 rename() 重命名文件
from pathlib import Path
file = Path('sample.txt')
file.rename('new_sample.txt') # 将文件sample.txt重命名为new_sample.txt
2.5 目录操作
2.5.1 创建目录
可以使用 mkdir() 创建目录
from pathlib import Path
path = Path('new_dir')
path.mkdir() # 创建目录new_dir
2.5.2 删除目录
可以使用 rmdir() 删除目录,如果目录非空,则会抛出异常
from pathlib import Path
path = Path('new_dir')
path.rmdir() # 删除目录new_dir
2.5.3 复制目录
可以使用 copytree() 复制目录和文件,它还会递归复制子目录
from pathlib import Path
src_dir = Path('src_dir')
dst_dir = Path('copy_dir')
dst_dir.mkdir()
# 复制src_dir目录,包括子目录和文件
src_dir.copytree(dst_dir)
2.5.4 移动目录
可以使用 replace() 移动目录
from pathlib import Path
src_dir = Path('src_dir')
dst_dir = Path('dst_dir')
# 移动目录src_dir至dst_dir
src_dir.replace(dst_dir / src_dir.name)
3. 总结
本文介绍了Pathlib模块中Path类的基本用法,包括创建Path对象、获取路径信息、文件操作和目录操作等。在实际编程中,可以根据需求选择适当的方法来处理文件系统路径,从而使代码更加易于阅读、易于维护和可移植。