首页 > 其他分享 >pathlib相关操作

pathlib相关操作

时间:2023-02-28 14:45:25浏览次数:33  
标签:pathlib base 测试 相关 print 操作 目录 dir

import pathlib

base_dir = pathlib.Path('E:/测试目录A/测试目录B/测试文档.txt')

# 获取父级目录
parent = base_dir.parent
print(parent)  # E:\测试目录A\测试目录B
parents = base_dir.parents
list(parents)  # [WindowsPath('E:/测试目录A/测试目录B'), WindowsPath('E:/测试目录A'), WindowsPath('E:/')]

# 获取文件名(带扩展)或最后一个目录
name = base_dir.name
print(name)  # 测试文档.txt
name = pathlib.Path('E:/测试目录A/测试目录B').name
print(name)  # 测试目录B

# 获取文件名(不带扩展)或最后一个目录名
stem = base_dir.stem
print(stem)  # 测试文档
stem = pathlib.Path('E:/测试目录A/测试目录B').stem
print(stem)  # 测试目录B

# 路径切分
parts = base_dir.parts
print(parts)  # ('E:\\', '测试目录A', '测试目录B', '测试文档.txt')

# 获取路径中的根路径
root = base_dir.root
print(root)  # \

# 获取路径中的盘符
drive = base_dir.drive
print(drive)  # E:

# 获取路径中的盘符及根路径
anchor = base_dir.anchor
print(anchor)  # E:\

# 获取路径中的文件扩展
suffix = base_dir.suffix
print(suffix)  # .txt

# 获取路径中的文件扩展,返回列表
suffixes = base_dir.suffixes
print(suffixes)  # ['.txt']
suffixes = pathlib.Path('E:/测试目录A/测试目录B/a.tar.gz').suffixes
print(suffixes)  # ['.tar', '.gz']

# 获取绝对路径
abs_path = pathlib.Path('./sanic_test.py').resolve()
print(abs_path)  # E:\PythonProject\sanic_test.py

# 文件查找,返回bool
res = base_dir.match('*.txt')
print(res)  # True

# 获取用户的家目录
home = base_dir.home()
print(home)  # C:\Users\XXX

# 获取文件相关信息
c_time = base_dir.stat().st_ctime
print(c_time)  # 1677554830.884977

# 路径拼接
new_path = pathlib.Path('E:/测试目录A').joinpath('测试目录D', '测试目录E')
print(new_path)  # E:\测试目录A\测试目录D\测试目录E
new_path = pathlib.Path('E:/测试目录A') / '测试目录D' / '测试目录E'
print(new_path)  # E:\测试目录A\测试目录D\测试目录E

# 文件是否存在
res = base_dir.exists()
print(res)  # True

# 扫描当前目录下的文件及目录
res = pathlib.Path(r"E:\测试目录A\测试目录B").iterdir()
print(list(res))
# [WindowsPath('E:/测试目录A/测试目录B/测试Excel.xlsx'), WindowsPath('E:/测试目录A/测试目录B/测试ppt.pptx'),
# WindowsPath('E:/测试目录A/测试目录B/测试word.docx'), WindowsPath('E:/测试目录A/测试目录B/测试目录C')]

# 文件查找:当前目录
res = pathlib.Path('E:/测试目录A').glob('*.txt')
print(list(res))  # [WindowsPath('E:/测试目录A/新建文本文档.txt')]

# 文件查找:当前目录及其子目录
res = pathlib.Path('E:/测试目录A').glob('**/*.txt')
print(list(res))
# [WindowsPath('E:/测试目录A/新建文本文档.txt'), WindowsPath('E:/测试目录A/测试目录B/abc.txt'), WindowsPath('E:/测试目录A/测试目录B/测试文档.txt')]

# 移动文件,并重命名
base_dir.replace('E:/测试目录A/测试文档abc.txt')

# 创建文件
pathlib.Path('E:/测试目录A/测试目录B/abc.txt').touch()

# 重命名文件
res_name = base_dir.with_name('abcde.txt')
base_dir.replace(res_name)
print(res_name)  # E:\测试目录A\测试目录B\abcde.txt

# 创建目录,创建多级目录时,指定参数parents=True;当目录存在时指定参数exist_ok=True
pathlib.Path('E:/测试目录A/测试目录E/测试目录F').mkdir(parents=True, exist_ok=True)

# 删除文件
pathlib.Path(r"E:\测试目录A\测试目录B\abc.txt").unlink()

# 删除目录,只能删除空目录,删除目录不存在时报错
pathlib.Path(r"E:\测试目录A\测试目录D").rmdir()

标签:pathlib,base,测试,相关,print,操作,目录,dir
From: https://www.cnblogs.com/rong-z/p/17164207.html

相关文章

  • python对mysql数据库进行读写的操作
    python对mysql数据库进行读写的操作importpymysql#使用python连接mysql数据库,并对数据库进行添加数据的方法#创建连接,数据库主机地址数据库用户名称密码数据库......
  • Redhat Enterprise Linux磁带机简单操作
    Linux下使用磁带机的方式有多种,主要有通过Amanda、Tar等软件进行操作。Amanda是提供了远程集中备份的功能,通过分别设置客户端、服务器端,实现远程集中存储备份。而Tar主要用......
  • java 线程安全(二)CAS操作
    为了把关于线程相关的内容搞清楚,在synchronized一节中有提到CAS这个操作一、什么是CAS?CAS,compare andswap的缩写,中文翻译成比较并交换。JDK提供的非阻塞原子性操作,它......
  • spring 相关总结
    一、 spring-boot-starter-data-jpa spring-boot-starter-jdbc区别参考1: spring-boot-starter-data-jpa与spring-boot-starter-jdbcspring-boot-starter-data-jpa......
  • BOSHIDA 模块电源的遥控开关操作
    BOSHIDA三河博电科技 开关电源模块遥控开/关电路模块电源的遥控开关操作,是通过REM端进行的。一般控制方式有两种:(1)REM与-VIN(参考地)相连,遥控关断,要求VREF<0.4V。......
  • 通过使用online表单的获取使用,了解vue.js数组的常用操作
        在开发项目中,经常会遇到对数组的操作,比如对数组的数据进行删减或增加,同时也会对每个数组里的数据进行删减,下面就举个例子说明一下。   直接给一段代码getO......
  • WPF中的Frozen(冻结)与线程及其他相关问题
    System.Windows.Freezable类(在WindowsBase.dll中)定义一个对象,该对象具有可修改状态和只读(冻结)状态。派生自Freezable的类提供详细的更改通知,可以是不可变的,并且可以进行......
  • KingbaseES V8R6 集群环境备库不结束旧事务快照将影响主库的vacuum操作
    前言昨天同事遇到了一个有关vacuum的典型问题。V8R6读写分离集群环境,一主多备。版本:kingbaseesv008r006c004问题现象:主库日常巡检发现日志大量记录:waring:oldestxmi......
  • (转)二进制与 Go 的原子操作
    原文:https://segmentfault.com/a/1190000039769367前置阅读:C语言中文网-汇编语言基本概念简介-补码及进制转换《GO并发编程实战》——原子操作二进制相关基础概念......
  • PKPM考试相关
    梁弯矩调幅:什么是梁端弯矩调幅?为何设计时要进行调幅?_百度知道(baidu.com) 根据轴压比估算柱子截面尺寸:PKPM——柱子截面尺寸的估算-第一期-知乎(zhihu.com) 框架......