pathlib 是 Python 标准库中用于处理文件路径的模块。它提供了一种面向对象的方式来操作文件和目录路径,简化了路径操作的编码和跨平台的兼容性。下面是 pathlib 库的基本介绍和使用方法:

1.导入 pathlib 模块

from pathlib import Path

2.创建路径对象

可以使用 Path 类创建一个路径对象,以便对文件或目录进行操作。

# 创建路径对象
path = Path('/path/to/file.txt')

3.检查路径的存在性

使用路径对象的 exists() 方法可以检查文件或目录是否存在。

if path.exists():
    print('路径存在')
else:
    print('路径不存在')

4. 获取路径的绝对路径

         resolve()用于解析路径中的符号链接并返回绝对路径。它会处理路径中的所有特殊符号,并返回一个标准化的绝对路径。

        解析符号链接:
        resolve() 方法会递归地解析路径中的符号链接(symbolic links)。例如,如果路径中包含一个符号链接指向另一个目录或文件,resolve() 方法会将其解析为实际的目录或文件路径。

        返回绝对路径:
        resolve() 方法总是返回一个绝对路径,无论传入的路径是相对路径还是绝对路径。如果路径是相对路径,则会根据当前工作目录将其解析为绝对路径。

        标准化路径:
        resolve() 方法会对路径进行标准化处理,消除冗余的分隔符、处理上级目录符号(..)和当前目录符号(.),以保证返回的路径是规范化的

absolute_path = path.resolve()
print(absolute_path)

5. 判断路径是否是绝对路径

使用路径对象的 is_absolute() 方法可以判断路径是否是绝对路径。

if path.is_absolute():
    print('这是一个绝对路径')
else:
    print('这是一个相对路径')

6. 获取路径的父目录

使用路径对象的 parent 属性可以获取文件或目录的父目录路径。

parent_dir = path.parent
print(parent_dir)

7. 获取路径的文件名和扩展名

使用路径对象的 name 属性可以获取文件或目录的名称,使用 suffix 属性可以获取文件的扩展名。

filename = path.name
print(filename)

extension = path.suffix
print(extension)

8. 连接路径

使用路径对象的 / 运算符可以连接路径。

new_path = path / 'subdir' / 'file.txt'
print(new_path)

9. 检查路径是否为文件或目录

使用路径对象的 is_file() 和 is_dir() 方法可以检查路径是否为文件或目录。

if path.is_file():
    print('这是一个文件')
elif path.is_dir():
    print('这是一个目录')

10. 遍历目录中的文件和子目录:

使用路径对象的 iterdir() 方法可以遍历目录中的文件和子目录。

for item in path.iterdir():
    if item.is_file():
        print('文件:', item)
    elif item.is_dir():
        print('目录:', item)

11. 创建目录

使用路径对象的 mkdir() 方法可以创建目录。

path.mkdir()

12. 删除文件或目录

使用路径对象的 unlink() 方法可以删除文件,使用 rmdir() 方法可以删除目录。

path.unlink()  # 删除文件
path.rmdir()   # 删除目录

13. 拼接路径

使用路径对象的 joinpath() 方法可以拼接多个路径。

new_path = path.joinpath('subdir', 'file.txt')
print(new_path)

14. 检查路径是否为空

  14.1 使用 iterdir() 方法遍历目录中的文件和子目录,并检查是否存在任何项:

if path.is_dir() and not any(path.iterdir()):
    print('目录为空')

        这里使用 iterdir() 方法来获取目录中的所有项,然后使用 any() 函数来检查是否有任何项存在。如果没有任何项,则说明目录为空。

 14.2  使用 glob() 方法进行模式匹配查找,并检查是否找到任何项:

files = list(path.glob('*'))
if not files:
    print('目录为空')

        这里使用 glob() 方法来进行模式匹配查找,使用 '*' 作为通配符,获取目录中的所有项。然后将结果转换为列表,并检查列表是否为空。如果为空,则说明目录为空。

        请注意,这些方法都假设路径是一个目录。如果路径是一个文件,它们将返回 False,因为文件本身就是一个项。如果要检查文件是否为空,可以使用其他方法,如检查文件大小是否为零。

15. 获取文件或目录的大小

使用路径对象的 stat() 方法可以获取文件或目录的大小和其他元数据信息。

file_size = path.stat().st_size
print('文件大小:', file_size, '字节')

16. 复制文件或目录

使用路径对象的 copy() 方法可以复制文件或目录。

new_path = path.copy('/path/to/destination')

17. 移动文件或目录

使用路径对象的 rename() 方法可以移动文件或目录。

new_path = path.rename('/new/path')

18. 查找文件或目录

使用路径对象的 glob() 方法可以进行文件或目录的模式匹配查找。

files = path.glob('*.txt')  # 查找所有以 .txt 结尾的文件
for file in files:
    print(file)

19. 快速写入文件内容

使用路径对象的 write_text() 方法可以快速写入文件内容。

path.write_text('Hello, World!')

20. 快速读取文件内容

使用路径对象的 read_text() 方法可以快速读取文件内容。

content = path.read_text()
print(content)

        总结,上述介绍了 pathlib 库的一些用法和功能。它提供了一种更简洁和面向对象的方式来处理文件路径,并且具有良好的跨平台兼容性。另外它提供了丰富的方法和属性,使得文件和目录的操作更加方便和灵活。可以根据具体需求使用这些方法来处理路径、文件和目录。

03-22 04:17