对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中关键字is与==的区别简述
Jul 31 Python
在Python的Django框架中加载模版的方法
Jul 16 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
python中in在list和dict中查找效率的对比分析
May 04 Python
django请求返回不同的类型图片json,xml,html的实例
May 22 Python
Python Numpy库datetime类型的处理详解
Jul 13 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
python实现实时视频流播放代码实例
Jan 11 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
深入浅析Python 函数注解与匿名函数
Feb 24 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
Feb 03 Python
python装饰器代码解析
Mar 23 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
Zend 输出产生XML解析错误
2009/03/03 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
javascript RadioButtonList获取选中值
2009/04/09 Javascript
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
js中开关变量使用实例
2017/02/24 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
pandas通过loc生成新的列方法
2018/11/28 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
Html5无刷新修改browser Url的方法
2014/01/15 HTML / CSS
英国床垫在线:Mattress Online
2016/12/07 全球购物
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
ORACLE十问
2015/04/20 面试题
幼儿园教师自我鉴定
2014/03/20 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
2014年团工作总结
2014/11/27 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang