首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每日一模块:pathlib

一、简介

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是一个不可或缺的工具。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OB-kz_Z8zsYKcnIJou1kmdHg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券