对python3中pathlib库的Path类的使用详解


Posted in Python onOctober 14, 2018

用了很久的os.path,今天发现竟然还有这么好用的库,记录下来以便使用。

1.调用库

from pathlib import

2.创建Path对象

p = Path('D:/python/1.py')
print(p)

#可以这么使用,相当于os.path.join()
p1 = Path('D:/python')
p2 = p1/'123'
print(p2)

结果

D:\python\1.py
D:\python\123

3.Path.cwd()

获取当前路径

path = Path.cwd()
print(path)

结果:

D:\python

4.Path.stat()

获取当前文件的信息

p = Path('1.py')
print(p.stat())

结果

os.stat_result(st_mode=33206, st_ino=8444249301448143, st_dev=2561774433, st_nlink=1, st_uid=0, st_gid=0, st_size=4, st_atime=1525926554, st_mtime=1525926554, st_ctime=1525926554)

5.Path.exists()

判断当前路径是否是文件或者文件夹

>>> Path('.').exists()
True
>>> Path('1.py').exists()
True
>>> Path('2.py').exists()
False

6.Path.glob(pattern)与Path.rglob(pattern)

Path.glob(pattern):获取路径下的所有符合pattern的文件,返回一个generator

目录下的文件如下:

对python3中pathlib库的Path类的使用详解

以下是获取该目录下所有py文件的路径:

path=Path.cwd()
pys = path.glob('*.py')#pys是经过yield产生的迭代器
for py in pys:
  print(py)

结果:

C:\python\1.py
C:\python\11.py
C:\python\1111.py
C:\python\11111.py

Path.rglob(pattern):与上面类似,只不过是返回路径中所有子文件夹的符合pattern的文件。

7.Path.is_dir()与Path.is_file()

Path.is_dir()判断该路径是否是文件夹 
Path.is_file()判断该路径是否是文件

print('p1:')
p1 = Path('D:/python')
print(p1.is_dir())
print(p1.is_file())

print('p2:')
p2 = Path('D:/python/1.py')
print(p2.is_dir())
print(p2.is_file())

#当路径不存在时也会返回Fasle
print('wrong path:')
print(Path('D:/NoneExistsPath').is_dir())
print(Path('D:/NoneExistsPath').is_file())

结果

p1:
True
False
p2:
False
True
wrong path:
False
False

8.Path.iterdir()

当path为文件夹时,通过yield产生path文件夹下的所有文件、文件夹路径的迭代器

p = Path.cwd()
for i in p.iterdir():
  print(i)

结果

D:\python\1.py
D:\python\11.py
D:\python\1111.py
D:\python\11111.py
D:\python\dir

9.Path.mkdir(mode=0o777,parents=Fasle)

根据路径创建文件夹

parents=True时,会依次创建路径中间缺少的文件夹

p_new = p/'new_dir'
p_new.mkdir()

p_news = p/'new_dirs/new_dir'
p_news.mkdir(parents=True)

结果

对python3中pathlib库的Path类的使用详解

10.Path.open(mode='r', buffering=-1, encoding=None, errors=None, newline=None)

类似于open()函数

11.Path.rename(target)

当target是string时,重命名文件或文件夹

当target是Path时,重命名并移动文件或文件夹

p1 = Path('1.py')
p1.rename('new_name.py')

p2 = Path('11.py')
target = Path('new_dir/new_name.py')
p2.rename(target)

结果

对python3中pathlib库的Path类的使用详解

12.Path.replace(target)

重命名当前文件或文件夹,如果target所指示的文件或文件夹已存在,则覆盖原文件

13.Path.parent(),Path.parents()

parent获取path的上级路径,parents获取path的所有上级路径

14.Path.is_absolute()

判断path是否是绝对路径

15.Path.match(pattern)

判断path是否满足pattern

16.Path.rmdir()

当path为空文件夹的时候,删除该文件夹

17.Path.name

获取path文件名

18.Path.suffix

获取path文件后缀

以上这篇对python3中pathlib库的Path类的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 安装setuptools和pip工具操作方法(必看)
May 22 Python
Python递归函数定义与用法示例
Jun 02 Python
Python内存管理方式和垃圾回收算法解析
Nov 11 Python
Python实现的基数排序算法原理与用法实例分析
Nov 23 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
Selenium鼠标与键盘事件常用操作方法示例
Aug 13 Python
简单了解Django应用app及分布式路由
Jul 24 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
用 python 进行微信好友信息分析
Nov 28 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
python 算法题——快乐数的多种解法
May 27 Python
python数字类型和占位符详情
Mar 13 Python
python使用numpy读取、保存txt数据的实例
Oct 14 #Python
Python读取txt某几列绘图的方法
Oct 14 #Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
Oct 14 #Python
python得到qq句柄,并显示在前台的方法
Oct 14 #Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
Oct 14 #Python
python读取文本中的坐标方法
Oct 14 #Python
Python 实现Windows开机运行某软件的方法
Oct 14 #Python
You might like
PHP 表单提交给自己
2008/07/24 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
Javascript 布尔型分析
2008/12/22 Javascript
js常用排序实现代码
2010/12/28 Javascript
最佳的addEvent事件绑定是怎样诞生的
2011/10/24 Javascript
jQuery中append()方法用法实例
2015/01/08 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
JS获取地址栏参数的两种方法(简单实用)
2016/06/14 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
浅谈Vue.use到底是什么鬼
2020/01/21 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
Python标准库之循环器(itertools)介绍
2014/11/25 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
简单了解python协程的相关知识
2019/08/31 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
PHP如何调用MYSQL存储过程
2014/05/30 面试题
社区学习十八大感想
2014/01/22 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
简单租房协议书
2014/04/09 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书
MySQL基础(二)
2021/04/05 MySQL
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript