概要

面向对象的文件系统路径操作模块

pure paths: 单纯的路径操作,不提供 I/O 操作

concrete paths: 路径计算操作 + I/O 操作

常用的操作

1. 路径的属性

列出所有父目录、父目录、文件名或目录名、文件前缀、文件后缀等...

from pathlib import Path

p = Path('./test/filename.text')

p.parents # 所有父目录

>> WindowsPath.parents

p.parent # 父目录

>> test

p.name # 文件名或目录名

>> filename.text

p.stem # 文件前缀

>> filename

p.suffix # 文件后缀

>> .text

p.is_dir() # 文件夹判断

>> False

p.is_file() # 文件判断

>> True

p.exists() # 路径是否存在

>> True

p.stat() # 获取路径属性

>> os.stat_result(st_mode=16895, st_ino=7036874417855445, st_dev=2287178555, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1576075587, st_mtime=1576075562, st_ctime=1576075197)

2. 路径的操作

创建文件夹、路径连接、写文件、读文件、遍历子路径等...

from pathlib import Path

# 创建文件夹

base_path = Path('dir/child_dir')

base_path.mkdir(exist_ok=True, parents=True)

# 路径连接

file_path = base_path / Path('file.text')

# 创建文件

file_path.touch(exist_ok=True)

# 写文件

with file_path.open(mode='w', encoding='utf-8') as f:

f.write('Hello World')

# 读文件

with file_path.open(mode='r') as f:

print(f.read())

# 遍历子路径

for path in p.iterdir():

print(path)

# 递归遍历子路径 (正则)

for item in base_path.rglob('*.text'):

print(item)

# 移动文件夹

new_path = base_path / Path('new_file.text')

file_path.replace(new_path)

# 删除文件

new_path.unlink()

# 删除文件夹(必须为空)

new_path.parent.rmdir()

附录

os 和 os.path

pathlib

说明

os.path.abspath()

Path.resolve()

获取 path 的绝对路径

os.path.chmod()

Path.chmod()

改变 path 的权限

os.path.mkdir()

Path.mkdir()

创建文件夹

os.path.rename()

Path.rename()

path 重命名

os.path.replace()

Path.replace()

path 重命名 (新路径存在则替换)

os.path.remove(), os.unlink()

Path.unlink()

删除 path

os.path.cwd()

Path.cwd()

当前工作路径(current working directory)

os.path.exists()

Path.exists()

path 是否存在

os.path.expanduser()

Path.expanduser()

path 添加当前用户

os.path.isdir()

Path.is_dir()

是否为文件夹

os.path.isfile()

Path.is_file()

是否为文件

os.path.islink()

Path.is_symlink()

是否为软链接

os.stat()

Path.stat(), Path.owner(), Path.group()

path 的属性

os.path.samefile()

Path.samefile()

是否为相同文件

os.path.isabs()

PurePath.is_absolute()

是否为绝对路径

os.path.join()

PurePath.joinpath()

路径连接操作

os.path.dirname()

PurePath.parent

前缀路径

os.path.basename()

PurePath.name

路径名称

os.path.splitext()

PurePath.suffix

路径后缀

参考

python pathlib模块_【Python Snippets】Pathlib 模块相关推荐

  1. python gps模块_树莓派连接GPS模块

    一月份的时候觉得好玩买了树莓派,但是太懒没怎么研究,但最近当初买树莓派时的那个梦想又萦绕心头,决定抽空完成一下当年的计划~ GPS模块是其中很重要的一环,于是在某宝上搜索,找了一家相对便宜也很轻巧的G ...

  2. python keyboard模块_[python] PyMouse、PyKeyboard用python操作鼠标和键盘

    1.PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用.支持的平台及依赖如下: Linux - Xlib Mac - Quartz, ...

  3. python视窗编程_[PYTHON] 核心编程笔记(19.图形用户界面编程)

    19.1 简介 19.1.1 什么是Tcl,Tk和Tkinter? 19.1.2 安装和使用Tkinter # apt-get install python-tk -y # python ------ ...

  4. python 病毒 基因_#Python#提取基因对应的蛋白质名

    提取基因对应的蛋白质官方名 最开始,是需要将基因跟其编码的蛋白质对应起来,找遍了各种数据库都没发现有相关的注释文件,Uniprot作为处理蛋白质的大佬,结果里都有,肯定有办法能够满足需求. 搜索TP5 ...

  5. java9 模块_了解Java 9模块

    java9 模块 Java 9的主要创新是引入了模块. 关于此功能的讨论很多,发布日期被推迟了几次以正确完成所有操作. 今天,我们将讨论模块的机制,以及Java 9总体带来的好处. 该帖子基于Inte ...

  6. python ssl模块_转 Python3 ssl模块不可用的问题

    编译安装完Python3之后,使用pip来安装python库,发现了如下报错: $ pip install numpy pip is configured with locations that re ...

  7. python 解析域名_三、域名解析模块(dnspython)

    一.域名解析模块(dnspython) dnspython模块提供了大量的DNS处理方法,最常用的方法是域名查询.dnspython提供了一个DNS解析器类--resolver,使用它的query方法 ...

  8. python数值模拟教程_数值模拟必备random模块

    该模块实现了各种分布的伪随机数生成器.可以在区间内抽取一个随机数,可以在列表中抽取一个元素,可以从分布中抽取样本 . random模块不能直接访问,需要导入 random 模块,然后通过 random ...

  9. 十个模块_专栏 | ABAQUS Part模块的十个小技巧

    作者介绍 星辰_北极星 2012年开始从事Abaqus仿真相关工作,服务大小课题逾百项; 主要仿真领域:石油工程.岩土工程和金属加工工艺: 重点研究方向:ABAQUS GUI二次开发.固体力学.断裂以 ...

  10. python udp 直播_[Python] socket发送UDP广播实现聊天室功能

    原博文 2018-11-24 12:33 − 一.说明 本文主要使用socket.socket发送UDP广播来实现聊天室功能. 重点难点:理解UDP通讯流程.多线程.UDP广播收发等. 测试环境:Wi ...

最新文章

  1. 谈谈最近独立做项目的一些事情,一些小经验,分享之!
  2. IPFS Series -- Bitswap Protocol
  3. python连接elasticsearch查询数据
  4. java.lang.reflect.Method.getGenericParameterTypes()方法示例
  5. c语言while运行出现错误,【图片】为什么我的while(1)不执行啊?【c语言吧】_百度贴吧...
  6. mysql raid_DBA们应该知道的RAID卡知识_MySQL
  7. 如何下载linux历史版本下载,CentOS历史版本下载方法
  8. jedis使用pipline的方法
  9. 如何在不支持双面打印的打印机上实现双面打印
  10. 前端毕业设计:Nodejs+Vue菜鸟驿站仓库管理系统的设计与实现
  11. Ubuntu18.04 谷歌浏览器安装商店助手
  12. Python爬虫进阶教程:抖音APP无水印视频批量下载
  13. gke google_使用ExternalDNS扩展GKE
  14. 【学习笔记】噬菌体学
  15. 聊天软件黑盒测试,duckchat
  16. H5 集成微信自定义分享(兼容 ios android)
  17. Docker以及DockerHub的使用
  18. antd-mobile下拉加载
  19. ChatGPT如何提问?30句ChatGPT提问公式,快收藏
  20. [生活]广东省内应届生深圳入户流程之报到证改派

热门文章

  1. Echarts数据可视化radar雷达坐标系,开发全解+完美注释
  2. python实现将子文件夹下的图片复制到新的文件夹并重命名
  3. 贺利坚老师汇编课程18笔记:栈的操作SS:SP
  4. [理解] Linux 作为一个服务器是怎样的存在 (一)
  5. asp.net2.0 GridView 导出到 Excel
  6. linux下查看内存频率,内核函数,cpu频率
  7. 深入理解C++ new/delete, new []/delete[]动态内存管理
  8. radio select的 option使用
  9. DataTable 和 DataView 的理解
  10. SDR与DDR的区别