python遍历文件夹os.path与pathlib
首先我们来一个需求,这个函数接受文件夹的名称作为输入参数,返回该文件夹中文件的路径,以及其包含文件夹中文件的路径。
def print_dir_contents(sPath):
import os
for sChild in os.listdir(sPath):
sChildPath = os.path.join(sPath,sChild)
if os.path.isdir(sChildPath):
# 迭代
print_dir_contents(sChildPath)
else:
print(sChildPath)
os.path模块是在python2和3中都存在的模块,如果项目的最终测试环境不是确定在py3中,还是建议使用os.path,它还是很简单适用的。
同时os.path模块还包括很多属性,比如说读取一个文件,但是可能存在文件不存在的情况,一般都是采用try,catch,也可以使用一条语句判断
os.path.isfile(fname)
列举几个
os.path.split(path)
('c:csv', 'test.csv') 将path分割成目录和文件名二元组返回。
os.path.commonprefix(list)
返回list中,所有path共有的最长的路径。
os.path.exists(path)
如果path存在,返回True;如果path不存在,返回False。
os.path.isabs(path)
如果path是绝对路径,返回True。
os.path.normpath(path)
规范化路径。
os.path.splitext(path)
分离文件名与扩展名
os.path.getmtime(path)
返回path所指向的文件或者目录的最后修改时间
pathlib
自python3开始,加入了pathlib库 导入库 from pathlib import Path
root = Path("../PycharmProject")
config_dir = root/Path("config")
# 等价于config_dir = os.path.join(root, 'config')
print(str(config_dir))
从这里可以看出pathlib更加简化
config.files = config_dir.rglob("*.json")
正则匹配文件
Path.iterdir() #遍历目录的子目录或者文件
Path.is_dir() #判断是否是目录
Path.glob() #过滤目录(返回生成器)
Path.resolve() #返回绝对路径
Path.exists() #判断路径是否存在
Path.open() #打开文件(支持with)
Path.unlink() #删除文件或目录(目录非空触发异常)
Path.chmod() #更改路径权限, 类似os.chmod()
Path.expanduser() #展开~返回完整路径对象
Path.mkdir() #创建目录
Path.rename() #重命名路径
Path.rglob() #递归遍历所有子目录的文件
Path.parts #分割路径 类似os.path.split(), 不过返回元组
path.suffix #文件后缀
path.stem #文件名不带后缀
path.name #带后缀的完整文件名
path.parent #路径的上级目录
- UAF Writeup - pwnable.kr
- 如何使用Nginx实现Impala负载均衡
- pwnhub年前最后一战——“血月归来”writeup
- MHN中心服务器搭建与树莓派蜜罐部署
- 如何在CDH中启用Spark Thrift
- 让你的以太坊 DApps 盈利的 6 种方法
- 赛博地球杯初赛第三名,ChaMd5安全团队的writeup
- 如何在Windows Server2012搭建DNS服务并配置泛域名解析
- 如何使用HBase快照实现跨集群全量与增量数据迁移
- 为什么你应该学习搭建区块链应用
- 如何在Hue中创建Ssh的Oozie工作流
- 如何在启用Sentry的CDH集群中使用UDF
- 区块链太火,小心你的服务器被动挖矿
- PY交易之简单沙盒绕过
- 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 数组属性和方法
- 打卡群2刷题总结1009——二叉树的中序遍历
- 解决Ubuntu 18.04安装VMwareTools错误问题
- 对linux下syslogd以及syslog.conf文件的解读说明
- Linux下安装tomcat并部署网站(推荐)
- 解决Linux中ifconfig和addr查看不到ip问题
- 【软件测试】面试中问到Linux命令,你都答上来了吗?【送书】
- Linux用户自定义at、cron计划任务执行的方法
- Linux下Oracle设置定时任务备份数据库的教程
- centos8 使用yum 安装 rabbitmq的教程
- linux exa命令(比ls更好的展示文件体验)
- 浅谈linux kernel对于浮点运算的支持
- PyTorch版YOLOv4更新了,不仅适用于自定义数据集,还集成了注意力和MobileNet
- Apache shiro的简单介绍与使用教程(与spring整合使用)
- Linux中一种友好的find替代工具(fd命令)
- ubuntu下让python脚本可直接运行的实现方法