13-Python-pathlib库使用
Posted 爱学习de测试小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13-Python-pathlib库使用相关的知识,希望对你有一定的参考价值。
pathlib库使用
前言
- 本篇来学习下Python中路径操作模块pathlib
简介
- pathlib 相比常用的 os.path 而言,pathlib 对于目录路径的操作更简洁也更贴近 Pythonic(Python代码风格的)
- 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() # 删除目录
以上是关于13-Python-pathlib库使用的主要内容,如果未能解决你的问题,请参考以下文章
Django:您是不是需要使用特定文件夹名称命名标签库(模板、静态等)?
用Python查找某文件夹的文件名称,并对文件名进行更改的库名称是啥?
如何在不使用库的情况下将默认名称“选择文件”更改为“选择文档”? [复制]