13-Python-pathlib库使用

简介: 13-Python-pathlib库使用

前言

  • 本篇来学习下Python中路径操作模块pathlib

简介

  1. pathlib 相比常用的 os.path 而言,pathlib 对于目录路径的操作更简洁也更贴近 Pythonic(Python代码风格的)
  2. pathlib 提供表示文件系统路径的类,其语义适用于不同的操作系统

使用

1. 获取当前文件夹路径

from pathlib import Path
# 1.可以直接调用类方法.cwd()
print(Path.cwd())
# 2.也可以实例化后调用
p = Path('./')
print(p.cwd())

2. 获取当前文件路径

# test.py 
from pathlib import Path
# 当前文件路径
p = Path(__file__)
print(p)
print(p.absolute())  # 获取绝对路径
print(p.resolve())  # 获取绝对路径
print(p.name)  # 获取文件名称 'test.py'
print(p.stem)  # 只要文件名,不要后缀 test
print(p.suffix)  # 获取文件 后缀.py
print(p.suffixes)  # 文件所有的后缀 ['.py']
print(p.parts)  # 拆分路径
print(p.parent)  # 父目录
print(p.parent.parent)  # 父目录的父目录
print(p.parents)  # 所有的父级 <WindowsPath.parents>
print(p.anchor)  # 目录前面的部分

3. 获取文件绝对路径

# test.py
from pathlib import Path
p = Path('test.py')
print(p)  # test.py 对象
print(p.absolute())  # 绝对路径

4. 获取用户home目录

from pathlib import Path
print(Path.home())

5. 判断文件

from pathlib import Path
print(Path.cwd().is_file())  # False
p = Path('./test.py')
print(p.is_file())  # 文件不存在,也会返回False
# exists() 判断是否存在
p = Path('./data.json')
print(p.exists())  # True or False

6. 判断文件夹

print(Path.cwd().is_dir())  # True
p = Path('./test.py')
print(p.is_dir())  # False

7. 拼接路径

from pathlib import Path
# 当前文件路径
p = Path('./')
print(p.absolute())  # 当前绝对路径
print(p.joinpath(p.absolute(), 'test.py'))  # 路径拼接data.json

8. 遍历文件目录

from pathlib import Path
p = Path(__file__).parent
# iterdir()遍历文件目录
for i in p.iterdir():
    print([i for i in p.iterdir() if i.is_dir()])  # 文件夹
    print([i for i in p.iterdir() if i.is_file()])  # 文件

9. 正则匹配

  • glob:只会遍历查找当前目录
from pathlib import Path
p = Path(__file__).parent
# glob 只会遍历查找当前目录
print(p.glob('*.txt'))
print([i for i in p.glob('*.txt')])
print([i for i in p.glob('*.py')])
  • rglob :会递归所有子目录
from pathlib import Path
p = Path(__file__).parent
# rglob 会递归所有子目录
print(p.rglob('*.txt'))  #
print([i for i in p.rglob('*.txt')])
print([i for i in p.rglob('*.py')])
  • match() 检查路径是否符合规则
from pathlib import Path
p = Path('6666.txt')
# math 检查匹配规则
print('math', p.match('*.txt'))  # 只检查规则,符合规则即使文件不存在也会返回True

10. 文件操作

  • 创建文件
from pathlib import Path
p = Path('./test.json')
p.touch()  # 创建test.json
  • 删除文件
from pathlib import Path
p = Path('test.json')
p.unlink()  # 删除test.json  文件不存在会报错
  • 文件读取
from pathlib import Path
p = Path('.gitignore')
print(p.read_text())  # 读取文本
print(p.read_bytes()) # 读取 bytes
  • 文件写入
from pathlib import Path
p = Path('data.txt')
p.write_text('test') # 写入文本
p = Path('data1.txt')
p.write_bytes(b'666')  # 写入 tytes
  • 创建目录
from pathlib import Path
p = Path('test1')  # 已经存在的目录会报错
p.mkdir()
p = Path('test2/test3')
p.mkdir(parents=True)  # 递归创建
  • 删除目录
from pathlib import Path
#  rmdir()一次只删除一级目录,且当前目录必须为空
p = Path('test1')
p.rmdir()   # 删除目录


相关文章
|
5天前
|
XML JSON 数据库
Python的标准库
Python的标准库
116 77
|
1月前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
1月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
70 0
|
19天前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
57 4
数据分析的 10 个最佳 Python 库
|
6天前
|
XML JSON 数据库
Python的标准库
Python的标准库
30 11
|
19天前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
77 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
6天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
39 8
|
27天前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
26天前
|
存储 人工智能 搜索推荐
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
Memoripy 是一个 Python 库,用于管理 AI 应用中的上下文感知记忆,支持短期和长期存储,兼容 OpenAI 和 Ollama API。
83 6
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
|
14天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
25 4