python基础—pathlib模块
时间:2022-07-22
本文章向大家介绍python基础—pathlib模块,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
有两个模块可用
- os模块中的path
- pathlib中的Path
这里说下pathlib模块,只要python版本大于3.4 都自带标准库pathlib
使用方法
from path lib import Path
目录操作
p = Path() #当前目录 初始
p = Path(‘a’,’b’,’c’,’d/e’) #当前目录下的a/b/c/d/e
p = Path(‘/etc’) #根目录下的etc目录
路径拼接与分解
分解
同时拼接多个字符串
父目录
parents 父目录序列,索引0相当于/根目录
也可以像访问列表那样,通过输入索引来获取值
其他方法介绍
name 目录的最后一部分,可以是文件名,也可以是目录名
suffix 目录中最后一个部分的扩展名
stem 目录最后一个部分,没有后缀
suffixes 返回多个扩展名列表,可以对比下suffix来看
cwd() 返回当前目录
home() 返回当前价目录
is_dir() 是否是目录
is_file() 是否是普通文件
is_symlink() 是否是软链接
is_socker() 是否是socket文件
is_block_device() 是否是块设备
is_char_device() 是否是字符设备
is_absolute() 是否是绝对路径
exists() 目录或文件是否存在
rmdir() 删除空目录
touch(mode=0o666,exist_ok=True) 创建空文件
mkdir(mode=0o777,parents=False,exist_ok=False) 创建目录,parents=True时,相当于mkdir -p,False时则会报错FileNotFountError,exist_ok=True时,FileNotFoundError被忽略
iterdir() 迭代当前目录
练习
遍历目录,并判断文件类型,如果是目录再判断是否为空
from pathlib import Path
def yourdir(dir_cur):
'''check file type'''
for x in Path(dir_cur).parents[0].iterdir():
print(x,end='t')
if x.is_dir():
flag = False
for _ in x.iterdir(): #如果目录为空,则无法迭代
flag = True
break
print('dir','Not Empty' if flag else 'Empty',sep='t')
elif x.is_file():
print('file')
else:
print('other file')
if __name__ == '__main__':
yourdir('/Users/fei/tmp/ops')
这里我们遍历的上级目录下的所有文件。
- oracle: job使用
- velocity模板引擎学习(2)-velocity tools 2.0
- java:如何用代码控制H2 Database启动
- 游戏开发完整学习路线(各个版本都有)
- spring mvc4:异常处理
- TCP/IP, WebSocket 和 MQTT
- struts2: 玩转 rest-plugin
- 设置系统环境变量立即生效的VBS脚本
- velocity模板引擎学习(1)
- mybatis 3.x 缓存Cache的使用
- XStream、JAXB 日期(Date)、数字(Number)格式化输出xml
- mac: vmware fusion中cent os启动假死的解决办法
- java:hibernate + oracle之坑爹的clob
- 启用WCF NetTcpBinding的共享端口
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Codeforces Round #627 (Div. 3) E. Sleeping Schedule (DP)
- PAT (Advanced Level) Practice 1144 The Missing Number (20分)
- JDBC 基础操作
- Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) C. Remove Adjacent
- MySQL 存储过程
- MySQL 约束
- MySQL 中的流程控制语句
- MySQL 权限操作
- MySQL 事务
- Java 随机生成四则运算式并生成答案
- MySQL 常用函数汇总
- Leetcode 698. 划分为k个相等的子集
- java数据结构与算法-快速排序
- 线上环境 Linux 系统调用追踪
- Kubernetes 1.19.0——其他控制器