python-pathlib
2021/6/20 22:56:16
本文主要是介绍python-pathlib,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
python-pathlib
老式的os.path用法主要是函数形式,返回的数据类型通常是字符串。但是路径和字符串并不等价,所以在使用 os 操作路径的时候常常还要引入其他类库协助操作。新用法是面向对象,处理起来更灵活方便。
可以在不同系统进行路径操作, 文件路径分为 非实体路径和实体路径。
pathlib
基本操作
from pathlib import Path p=Path(r"D:\ENNEW\OCR") Path.cwd() # 返回当前目录 Path.home() # 返回用户主目录 Path.cwd().parent # 上级(父)目录 Path.stat() # 返回指定路径的相关信息 # parents是一个迭代器,每调用一次,目录向上一次。 for p in current_path.parents: 遍历得到整个父目录 print(p) Path.iterdir() # 返回 Path 目录文件夹下的所有文件,返回的是一个生成器类型。 [x for x in p.iterdir() if x.is_dir()] 列出目录下的子目录 获得目录的不同部分 Path.resolve() # 返回绝对路径
目录拼接三种
name_path=Path(path, 'file1.txt') newpath=Path(path).joinpath ('file1.txt') Path('/') / Path('home') / 'dongwm/code'
路径的不同部分
Path.name # 返回文件名,包括后缀 Path.parent # 返回上级(父)目录 Path.parents # 返回上级(父)迭代器 Path.stem # 返回文件名,不包含后缀 Path.suffix # 返回后缀扩展名 Path.suffixes # 返回后缀扩展名列表 Path.anchor # 返回磁盘符 Path.with_name() # 替换文件名 Path.with_suffix() # 替换扩展名 Path.resolve() # 返回绝对路径 Path.relative_to(path) # 返回相对路径 filepath=Path('D:/tzxw/abc.png') filepath.name # abc.png filepath.parent # D:/tzxw filepath.stem # abc filepath.suffix # .png filepath.suffixes # ['.png'] filepath.with_name('123.png') # /tzxw/123/png filepath.with_siffix('.jpg') # /tzxw/abc.jpg filepath.anchor # D:/ Path.resolve() # D:/tzxw/abc.png
创建删除目录
Path.mkdir() # 创建给定路径的目录。 Path.rmdir() # 删除该目录,目录文件夹必须为空 Path.touch() # 创建指定类型的
读写文件
DIR_PATH = pathlib.Path('D:/tzxw/abc.txt') with DIR_PATH.open("r") as fs: data = fs.read() print(data) ----------------- .read_text(): 以 encoding指定的编码方法读取,读成str格式。等同open操作文件的"r"格式。 .read_bytes(): 读取字节流的方式。等同open操作文件的"rb"格式。以二进制方法 .write_text(): 文件的写的操作,等同open操作文件的"w"格式。 .write_bytes(): 文件的写的操作,等同open操作文件的"wb"格式。
统计以匹配
Path.iterdir() # 返回 Path 目录文件夹下的所有文件,生成器类型。 Path.glob(model) # 返回 Path 目录文件夹下所有与 model 匹配的文件,返回的是一个生成器类型。 Path.rglob(model) # 返回 Path 路径下所有子文件夹中与 model 匹配的文件,返回的是一个生成器类型。 Path.match(model) # 返回 Path 路径下与 model 是否匹配,返回的是bool。 PY=[x for x in p.glob('*.py')] # 搜索出指定目录 print(PY)
# 使用 Path.iterdir() 获取当前文件下的所有文件,并根据后缀名统计其个数。 import pathlib from collections import Counter currentPath = pathlib.Path.cwd() gen = (i.suffix for i in currentPath.iterdir()) print(Counter(gen))
os and path
os and os.path pathlib os.path.abspath() Path.resolve() os.chmod() Path.chmod() os.mkdir() Path.mkdir() os.rename() Path.rename() os.replace() Path.replace() os.rmdir() Path.rmdir() os.remove(),os.unlink() Path.unlink() os.getcwd() Path.cwd() os.path.exists() Path.exists() os.path.isdir() Path.is_dir() os.path.isfile() Path.is_file() os.path.join() PurePath.joinpath()
pathlib案例
统计文件个数
import pathlib from collections import Counter now_path = pathlib.Path.cwd() gen = (i.suffix for i in now_path.iterdir()) print(Counter(gen)) gen =(p.suffix for p in pathlib.Path.cwd().glob('*.py')) print(Counter(gen))
展示目录树
def tree(fpath): print(f'+ {fpath}') for path in sorted(fpath.rglob('*')): depth = len(path.relative_to(fpath).parts) spacer = ' ' * depth print(f'{spacer}+ {path.name}')
获取文件最后一次修改时间
import pathlib now_path = pathlib.Path.cwd() from datetime import datetime time, file_path = max((f.stat().st_mtime, f) for f in now_path.iterdir()) print(datetime.fromtimestamp(time), file_path)
这篇关于python-pathlib的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础