首页 > 编程语言 >Python 路径管理新纪元:pathlib 模块带你玩转文件系统

Python 路径管理新纪元:pathlib 模块带你玩转文件系统

时间:2024-09-25 11:54:32浏览次数:7  
标签:Python 路径 pathlib 玩转 file path print Path

引言

在早期的 Python 版本中,处理文件路径往往需要依赖于 osos.path 模块,虽然它们功能强大,但复杂的 API 设计使得代码可读性较差。随着 Python 3.4 的发布,pathlib 模块正式登场,它以对象导向的方式简化了路径操作,使得代码更加直观易懂。本文旨在通过一系列实例帮助你快速上手 pathlib,无论你是初学者还是资深开发者,都能从中获益匪浅。

基础语法介绍

pathlib 主要有两个核心类:PathPurePath。其中 Path 是用于实际文件系统交互的类,而 PurePath 则仅用于路径的组合与解析,不涉及任何磁盘访问。

创建路径对象

from pathlib import Path

# 绝对路径
p = Path('/home/user/documents')
print(p)

# 相对路径
p = Path('data/logs.txt')
print(p)

路径操作

  • 获取父目录p.parent
    • 获取根目录p.root
    • 获取文件名p.name
    • 拼接路径p / 'subfolder'
# 示例
p = Path('/home/user/documents/report.txt')
print(p.parent)  # 输出: PosixPath('/home/user/documents')
print(p.stem)    # 输出: report
print(p.suffix)  # 输出: .txt

基础实例

假设我们需要创建一个目录,并在其中写入一些测试文件。

import os
from pathlib import Path

# 创建目录
output_dir = Path('output')
output_dir.mkdir(exist_ok=True)

# 写入文件
test_file = output_dir / 'hello.txt'
test_file.write_text('Hello, world!', encoding='utf-8')

# 读取文件
content = test_file.read_text(encoding='utf-8')
print(content)  # 输出: Hello, world!

进阶实例

当涉及到更复杂的文件系统操作时,如递归遍历目录、筛选特定类型的文件等,pathlib 同样表现得游刃有余。

递归遍历目录

# 遍历当前目录及其子目录下所有.py 文件
for p in Path('.').rglob('*.py'):
    print(p)

文件过滤

# 只打印文件大小超过1KB的.py 文件
for p in Path('.').rglob('*.py'):
    if p.stat().st_size > 1024:
        print(f'{p} - {p.stat().st_size} bytes')

实战案例

在实际项目中,pathlib 的优势更加明显。比如,在构建自动化部署脚本时,我们需要处理不同环境下的配置文件路径差异。

# 根据环境变量确定配置文件位置
env = os.environ.get('ENV', 'dev')
config_path = Path(f'/etc/configs/{env}.conf')

if config_path.exists():
    print(f'Using config file at {config_path}')
else:
    print(f'Config file not found: {config_path}')

扩展讨论

除了上述基本功能外,pathlib 还支持更多高级特性,如符号链接管理、异步 I/O 操作等。随着你对它的深入了解,你会发现 pathlib 几乎可以满足你在文件系统操作方面的一切需求。希望今天的分享能够为你打开一扇新的大门,让 Python 编程之旅更加轻松愉快!

标签:Python,路径,pathlib,玩转,file,path,print,Path
From: https://blog.51cto.com/u_16918694/12108127

相关文章

  • Python中的文件编码:揭开字符世界的神秘面纱
    引言在计算机系统中,数据是以二进制形式存储的。而我们日常见到的文字、符号等信息,则需要通过特定的方式转化为二进制数据,这就是编码的过程。不同的编码方式决定了如何将字符映射成字节序列。选择合适的编码方案不仅能够保证信息传输的准确性,还能提高程序的兼容性和可移植性。比如,......
  • Python+requests测试接口、关联接口
    一个通过筛选,一个提取cookie(有两种写法)一、依赖接口(1)第一种方法:requests.session 准备两个接口:一个登录接口,一个用户查询接口登录接口:http://cms.duoceshi.cn/manage/loginJump.do请求体:userAccount:adminloginPwd:123456用户查询接口:http://cms.duoceshi.cn/manage/q......
  • Python模拟鼠标轨迹
    一.鼠标轨迹模拟简介传统的鼠标轨迹模拟依赖于简单的数学模型,如直线或曲线路径。然而,这种方法难以捕捉到人类操作的复杂性和多样性。AI大模型的出现,能够通过深度学习技术,学习并模拟更自然的鼠标移动行为。二.鼠标轨迹算法实现AI大模型通过学习大量的人类鼠标操作数据,能够识别......
  • Python-通过Wind获取股票收盘价并绘制收盘价曲线图及均价水平参考线
    注意事项:需要安装Wind金融客户端并且用windPy权限代码如下:importnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlibasmplimportpandasaspdfromWindPyimport*#设置属性防止中文乱码mpl.rcParams['font.family']='SimHei' #设置字体为黑体mpl.rcPar......
  • [Python手撕]实现哈希映射
    classNode:def__init__(self,key,value,next=None):self.key=keyself.value=valueself.next=nextclassMyHashMap:def__init__(self):self.array=[None]*(10**3)defput(self,key:int,value:int)->......
  • 监控下抽烟检测系统 Python
    监控下抽烟检测系统具有以下优势:监控下抽烟检测系统通过视频监控设备对工地和工厂的作业区域进行实时监测,准确捕捉人员抽烟的行为。监控下抽烟检测系统采用先进的图像识别技术,能够准确识别人员抽烟的动作和烟雾。监控下抽烟检测系统一旦系统发现有人员在禁烟区域内抽烟,将立即触发预......
  • 面向企业应用程序的 Python 配置管理
    配置管理的重要性    在企业应用程序中,配置管理是最被低估的运算符,它使所有内容保持集成并平稳运行。它充当后台经理,确保所有灯光都就位,剧院队列准备就绪,演出可以顺利进行。特别是,在处理多环境部署时,使用紧密的 CI/CD 流程,一个错误的配置可能会带来应用程序范围的关闭风险。......
  • 使用python创建一个微信聊天机器人
    使用python创建一个微信聊天机器人实现的功能如下笑话天气歇后语历史上的今天核心代码:#-*-coding:utf-8-*-fromrandomimportrandintimportitchatimportreimportrequestsemojis_love=["❤️","......
  • 非煤矿山风险监测预警系统 Python
    非煤矿山风险监测预警系统具有以下优势:非煤矿山风险监测预警系统通过在煤矿关键地点安装摄像机等设备利用智能化视频识别技术,能够实时分析人员出入井口的情况,监测矿井人数变化并检测煤矿生产作业状态,在矿井出入口、各作业区域等重要位置进行全方位监测,确保覆盖矿山操作过程中的关键......
  • 基于Python+Vue开发的电影订票管理系统
    项目简介该项目是基于Python+Vue开发的电影订票管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的电影订票管理系统项目,大学生可以在实践中学习和提升自己的......