pathlib的Path的基本用法

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对象、获取路径信息、文件操作和目录操作等。在实际编程中,可以根据需求选择适当的方法来处理文件系统路径,从而使代码更加易于阅读、易于维护和可移植。

后端开发标签