Python文件遍历之os、pathlib
off999 2024-12-04 14:35 18 浏览 0 评论
20221208星期四:
# os方式一:通过递归调用,拿到所有文件,或者指定结尾的文件:
# os方式二:通过 os.walk ,拿到目录下所有的目录及文件:
# pathlib方式三:通过 rglob 方法:获取文件夹下(以及子文件夹)所有文件,返回文件路径列表;
# pathlib方式四:同上,使用列表推导式方式:
pathlib方式五:通过 glob 方法:获取文件夹下(不含子文件夹)所有文件,返回文件路径列表;
import os
from pathlib import Path
path = r'F:\filePath'# os方式一:
# 通过递归调用,拿到所有文件,或者指定结尾的文件:
# os方式一:
# 通过递归调用,拿到所有文件,或者指定结尾的文件:
listfileAll = []
def getAllDirRE(path):
# 得到当前目录下的所有目录及文件:
filesList = os.listdir(path)
# 处理每一个文件:
for fileName in filesList:
# 判断是否是路径(用绝对路径):
fileabsPath = os.path.join(path,fileName)
if os.path.isdir(fileabsPath):
# 递归调用:
getAllDirRE(fileabsPath)
else:
# 拿到 .xlsx 结尾的文件:
if fileName.endswith(".xlsx"):
listfileAll.append(fileabsPath)
getAllDirRE(path)
print('listfileAll:',len(listfileAll),listfileAll)# os方式二:
# 通过 os.walk ,拿到目录下所有的目录及文件:
# os方式二:
# 通过 os.walk ,拿到目录下所有的目录及文件:
pathWalk = os.walk(path)
listWalkAll = []
for root,dirs,files in pathWalk:
"""root: F:\filePath
root: F:\filePath\fileNew
root: F:\filePath\fileNew\fileThre
"""
# print('root:',root)
# 筛除空的列表:
if files:
for i in files:
# 筛选 .xlsx 文件,且不为 __init__.py:
if i.endswith('.xlsx') and i != '__init__.py':
listWalkAll.append(os.path.join(root,i))
print('listWalkAll:',len(listWalkAll),listWalkAll)
# pathlib方式三:
# 通过 rglob 方法:获取文件夹下(以及子文件夹)所有文件,返回文件路径列表;
# pathlib方式三:
# 通过 rglob 方法:获取文件夹下(以及子文件夹)所有文件,返回文件路径列表;
folder = Path(path.strip())
result = folder.rglob(f"*.*") # 也可以写成 result = list(folder.rglob(f"*.*"))
# result: <class 'generator'> <generator object Path.rglob at 0x000002227CCC82E0>
print('result:',type(result),result)
result01 = []
for i in result:
# i: <class 'pathlib.WindowsPath'> F:\filePath\anaconda镜像下载.txt
# print('i:',type(i),i)
result01.append(str(i))
# result01: <class 'list'> 10
print('result01:',type(result01),len(result01),result01)
# pathlib方式四:
# 使用列表推导式方式:
# 通过 rglob 方法:获取文件夹下(含子文件夹)所有文件,返回文件路径列表;
# pathlib方式四:
# 使用列表推导式方式:
# 通过 rglob 方法:获取文件夹下(含子文件夹)所有文件,返回文件路径列表;
result02 = [str(f) for f in folder.rglob("*.*") if Path(f).is_file()]
# result01: <class 'list'> 10
print('result02:',type(result02),len(result02),result02)# pathlib方式五:
# 使用列表推导式方式:
# 通过 glob 方法:获取文件夹下(不含子文件夹)所有文件,返回文件路径列表;
# pathlib方式五:
# 使用列表推导式方式:
# 通过 glob 方法:获取文件夹下(不含子文件夹)所有文件,返回文件路径列表;
# 即,子文件的文件不会获取
result03 = [str(f) for f in folder.glob("*.*") if Path(f).is_file()]
# result01: <class 'list'> 5
print('result03:',type(result03),len(result03),result03)
"""
相对于传统的os及os.path,pathlib具体如下优势:
pathlib实现统一管理,解决了传统操作导入模块不统一问题;
pathlib使得在不同操作系统之间切换非常简单;
pathlib是面向对象的,路径处理更灵活方便,解决了传统路径和字符串并不等价的问题;
pathlib简化了很多操作,简单易用。
"""相关推荐
- win10系统在哪里(win10系统在哪里看显卡配置)
-
在Windows10系统中,您可以使用以下步骤查看所有程序:1.点击“开始”按钮。2.在“搜索”框中键入“程序”,然后按“搜索”。3.在搜索结果页面中,您可以使用分类浏览程序列表,也可以按...
- win7内部版本7601怎么激活(win7内部版本7601激活必须今天激活)
-
没法激活,win7本身不具备激活7601的功能右击计算机--属性,拉倒最下面,会提示该系统未激活,然后点击激活,输入密钥就可以了,需要连接互联网。如果没有互联网,也可以电话激活。Windows7内部版...
- win8pe是什么意思(win8pe系统)
-
Windows8.1和PEWindows都是操作系统,但它们有一些不同之处。Windows8.1是微软推出的正式版操作系统,拥有更多的功能和应用程序。它适用于个人用户和商业用户,并提供更好的兼容性...
- 电脑桌面此电脑没了怎么恢复
-
1.在桌面上单击鼠标右键。将光标移到查看选项上。2.此时在右边找到显示桌面图标选项。此时在右边找到显示桌面图标选项。3.此时即可发现桌面的图标回来了。电脑桌面什么都没有了,可以建议找到设置,尝试恢复电...
- 台式电脑怎么重置系统(台式电脑怎么重新设置)
-
1、Win10系统启动到LOGO界面后,强制重启,反复3次左右,至到显示疑难解答,我们点击疑难解答进入;2.选重置此点电脑;3.接下来这里,我选择的删除所有内容。这里是准备要格式化系统分区C盘,如果想...
- 电脑公司模拟器破解版下载(电脑公司模拟器1.0.8)
-
直接先将xci程序复制到switch存储卡根目录,而后通过主机自带的安装程序直接安装
- xp系统永久激活密钥2020年(xp系统激活秘钥)
-
windowsxp产品密钥大全YBVJB-YV2JW-7FHPT-6D8XG-RT83GHRXTR-FKTCV-X8QCH-D7PTH-KYYPBJF8MD-XB4Y4-HHB28-Q3G2K-QW...
- 手写中文输入法下载安装(中文手写输入器)
-
1、首先第一步就是打开手机主界面,然后依次打开“设置”、“通用”、“键盘”,2、跳转的页面再点击“键盘”,3、勾选自己喜欢的中文手写模式,最后点击设定即可。仅参考先打开手机设置,然后点击一个语言和输入...
- office2007的产品密钥(office 产品密钥)
-
下载一个kms软件关闭杀毒软件大概三十秒就会完成相应的注册然后就可以正常的使用了
- 十大杀毒app排行(知名杀毒软件)
-
360安全卫士今天就为您推荐杀毒软件排行榜第一的免费软件——360安全卫士,首创即扫即清功能,操作流程更简单,而且在用户使用过程当中还能有效拦截病毒的侵入,提供强力守护。状元:BitDefender ...
- 笔记本怎么关闭防火墙(笔记本怎么关掉防火墙)
-
Win10教育版关闭防火墙设置方法 步骤1、在Win10桌面这台电脑图标上右键,然后选择“属性”。 步骤2、进入这台电脑属性之后,再点击左上角的“控制面板主页”。 步骤3、进入Win10控制面板...
- 32g内存还需要虚拟内存吗(32g内存还需要虚拟内存吗 知乎)
-
还需要的。虚拟内存是一定要的。就算你32G内存也是需要一个虚拟的转换空间。这个可以自己手动设置7000M左右就可以了,不用设置太大,没有用。虚拟内存是一定要的。就算你32G内存也是需要一个虚拟的...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
