欢迎访问宙启技术站
智能推送

path函数处理路径

发布时间:2023-05-24 11:14:37

在计算机系统中,我们经常需要处理文件路径,Path 函数是一个使用起来非常方便的处理路径的库。Path 函数能够适应不同操作系统的文件路径格式,简单易用,是 Python 中非常重要的一个内置库。

Path 函数是在 Python 3.4 版本中新增的,它是一个对象,可以用来操作文件和文件夹路径。Path 对象中包含了文件名、文件夹路径等信息。Python 3 中的 Path 函数提供了丰富的文件路径处理方法,支持文件名拼接、文件夹创建、文件夹获取等功能。

1. 创建 Path 对象

在使用 Path 函数时,首先需要创建 Path 对象。Path 函数的参数可以是字符串,也可以是其他 Path 对象,当参数是字符串类型时,也可以直接使用 / 运算符连接多个路径部分,Path 函数会自动识别操作系统,生成正确的路径格式。

from pathlib import Path

p1 = Path('path1/path2')
p2 = Path('/path1/path2')

print(p1)  # 输出:path1/path2
print(p2)  # 输出:/path1/path2

在 Linux 和 Mac OS 系统中,前面加上 / 表示文件根路径。在 Windows 系统中,前面需要加上盘符(例如 C:)。

Path 函数还支持使用字符串拼接创建文件路径:

# 在 Linux 和 Mac OS 系统中:
p1 = Path('path1') / 'path2'

# 在 Windows 系统中:
p1 = Path('path1') / 'path2'

# 输出:path1/path2
print(p1)

Path 的路径字符分隔符(/ 或 \)和 Python 的路径分隔符不同,它们是一种跨平台的字符串,自动适应操作系统。

p = Path('path1/path2/file.txt')
path_str = str(p)

# 在 Linux 和 Mac OS 系统中,输出:path1/path2/file.txt
# 在 Windows 系统中,输出:path1\path2\file.txt
print(path_str)

2. 文件路径基本操作

Path 对象的属性和方法很多,下面是一些常用的方法:

- .name: 返回文件路径的基本名称,即文件名。如果路径指向文件夹,则返回文件夹名。

p = Path('path1/path2/file.txt')
print(p.name)  # 输出:file.txt

- .parent: 返回文件路径的父目录路径。

p = Path('path1/path2/file.txt')
print(p.parent)  # 输出:path1/path2

- .stem: 返回文件路径的文件名部分,不包含扩展名。

p = Path('path1/path2/file.txt')
print(p.stem)  # 输出:file

- .suffix: 返回文件路径的扩展名,不包含前导的 .。

p = Path('path1/path2/file.txt')
print(p.suffix)  # 输出:.txt

- .exists(): 判断文件路径所指向的文件或文件夹是否存在。

p = Path('path1/path2/file.txt')
print(p.exists())  # 输出:True

- .is_file(): 判断文件路径是否指向一个文件。

p = Path('path1/path2/file.txt')
print(p.is_file())  # 输出:True

- .is_dir(): 判断文件路径是否指向一个文件夹。

p = Path('path1/path2')
print(p.is_dir())  # 输出:True

- .mkdir(): 创建文件夹。

p = Path('new_dir')
p.mkdir() # 如果已经存在,不做任何操作

- .unlink(): 删除文件。如果文件不存在,会抛出 FileNotFoundError 异常。

p = Path('path1/path2/file.txt')
p.unlink()  # 删除文件 file.txt

- .rmdir(): 删除空文件夹。

p = Path('path1/path2')
p.rmdir()  # 删除空文件夹 path2

3. 文件查找和迭代

Path 方法还支持文件路径查找和迭代:

- .glob(pattern):返回符合指定模式(pattern)的所有文件路径,返回的是一个生成器。

p = Path('.')
files = p.glob('*.txt')  # 查找当前目录下的所有 .txt 文件
for f in files:
    print(f)

- .iterdir():返回文件夹中所有文件和文件夹对象的迭代器。

p = Path('.')
for f in p.iterdir():
    print(f)

- .rglob(pattern):返回包含所有子文件夹的,符合指定模式(pattern)的所有文件路径。

p = Path('.')
files = p.rglob('*.txt')  # 查找包含子文件夹的所有 .txt 文件
for f in files:
    print(f)

4. 其他方法

Path 还有许多其他的有用方法,如:

- .rename(target): 重命名文件或文件夹。

p = Path('path1/path2/file.txt')
p.rename('path1/path2/new_file.txt')  # 把文件 file.txt 重命名为 new_file.txt

- .resolve(): 将相对路径转换为绝对路径。

p = Path('../path1/path2')  # 相对路径
p.resolve()  # 绝对路径,输出:/home/user/path1/path2

- .chmod(mode): 修改文件或文件夹的权限。

p = Path('file.txt')
p.chmod(0o777)  # 修改文件权限为 777

以上就是 Path 函数的基本用法,在实际开发中,Path 函数是非常常用的文件路径处理库,它可以让我们方便地处理文件路径,提高代码的可读性和可维护性。如果你还没有学习过 Path 函数,那就赶紧学起来吧!