python os.walk os.path glob.glob 遍历目录/文件夹 下所有文件/目录 的若干方法

python3 文件查找、读取 整理一下文件读取方法。 1.文件夹读取的几种方法 1.1 os.listdir() ''' 方法一,使用os.listdir ''' import os for filename in os.listdir(): print(filename) os.listdir():括号里是目录地址参数,没有输入参数表示当前目录 1.2 os.walk(path) path是指想遍历文件... 阅读详情

比如我电脑上的一个文件下的内容如下,两个子文件中只有文件无文件夹:
在这里插入图片描述

os.walk遍历所有子目录和文件

首先需要理解os.walk返回的三个值的含义

root, dirnames, filenames = os.walk(filepath)

root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)

是不是感觉有点抽象,实际跑一下程序帮助大家理解

for root, dirnames, filenames in os.walk(filepath):
    print(root)

D:\9_Code\Tensorflow_tutorials
D:\9_Code\Tensorflow_tutorials.ipynb_checkpoints
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization

三个目录的绝对路径

for root, dirnames, filenames in os.walk(filepath):
    print(dirnames)

[’.ipynb_checkpoints’, ‘Convnet_Visualization’]
[]
[]

三个目录中的子目录

for root, dirnames, filenames in os.walk(filepath):
    print(filenames)

[‘cache.tf-data.index’, ‘Cat.jpg’, ‘Convnet_Visualization_CAM - 副本.ipynb’, ‘Convnet_Visualization_CAM.ipynb’, ‘Egyptian_cat.jpg’, ‘Load images.ipynb’]
[‘Load images-checkpoint.ipynb’]
[‘cat_egyptian.jpg’, ‘Convnet_Visualization.ipynb’, ‘Convnet_Visualization.png’, ‘Convnet_Visualization1.png’, ‘Convnet_Visualization2.png’, ‘Convnet_Visualization3.png’, ‘Convnet_Visualization4.png’, ‘Egptian_cat.jpg’, ‘sedan.jpg’, ‘tabby.jpg’, ‘Tabby1.jpg’, ‘tiger_cat.jpg’, ‘tigger_cat.jpg’]

三个目录中的文件

遍历所有子目录

dirlist=[]
for root, dirnames, filenames in os.walk(filepath):
    for dirname in dirnames:
    	dirlist.append(os.path.join(root, dirname))
        print(os.path.join(root, dirname))

D:\9_Code\Tensorflow_tutorials.ipynb_checkpoints
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization

遍历所有子文件

filelist=[]
for root, dirnames, filenames in os.walk(filepath):
    for filename in filenames:
    	filelist.append(os.path.join(root,filename))
        print(os.path.join(root,filename))

D:\9_Code\Tensorflow_tutorials\cache.tf-data.index
D:\9_Code\Tensorflow_tutorials\Cat.jpg
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization_CAM - 副本.ipynb
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization_CAM.ipynb
D:\9_Code\Tensorflow_tutorials\Egyptian_cat.jpg
D:\9_Code\Tensorflow_tutorials\Load images.ipynb
D:\9_Code\Tensorflow_tutorials.ipynb_checkpoints\Load images-checkpoint.ipynb
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\cat_egyptian.jpg
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\Convnet_Visualization.ipynb
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\Convnet_Visualization.png
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\Convnet_Visualization1.png
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\Convnet_Visualization2.png
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\Convnet_Visualization3.png
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\Convnet_Visualization4.png
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\Egptian_cat.jpg
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\sedan.jpg
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\tabby.jpg
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\Tabby1.jpg
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\tiger_cat.jpg
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization\tigger_cat.jpg

os.path

同样我们可以利用os.path自己写循环实现相同的目的

遍历所有子目录

import os

filepath=r'D:\9_Code\Tensorflow_tutorials'
dirlist=[]
list1= os.listdir(filepath)
for file1 in list1:
    path = os.path.join(filepath, file1)
    if os.path.isdir(path):
        dirlist.append(path)
print(dirlist)

遍历所有子文件

import os

filepath=r'D:\9_Code\Tensorflow_tutorials'
filelist=[]
list1= os.listdir(filepath)
for file1 in list1:
    path = os.path.join(filepath, file1)
    if os.path.isfile(path):
        filelist.append(path)
    else:
        list2=os.listdir(path)
        for file2 in list2:
            path2 = os.path.join(path, file2)
            if os.path.isfile(path2):
                filelist.append(path2)
print(filelist)

glob.glob明确的文件类型

如果我们的检索目标比较明确,比如我要得到此目录下的.jpg文件,可以使用glob.glob

import glob

filepath=r'D:\9_Code\Tensorflow_tutorials'
jpg_img = glob.glob(filepath+'\*.jpg')
print(jpg_img)

[‘D:\9_Code\Tensorflow_tutorials\Cat.jpg’, ‘D:\9_Code\Tensorflow_tutorials\Egyptian_cat.jpg’]

便可直接返回目录下的列表形式,
注意:输入是相对路径,则返回也是相对路径

glob.glob多种文件类型

一个小技巧’*.[pn][jp]g’可以实现jpg或者png文件的同时读取

import glob

filepath=r'D:\9_Code\Tensorflow_tutorials'
jpg_img = glob.glob(filepath+'\*.[pn][jp]g')

比如写一个便利两级子目录的文件和图片的代码

import os
import glob
import csv

filepath = './'
filelist1 = sorted(os.listdir(filepath))

sum_frames=0
sum_file=0
with open('num_frame.csv', mode='w', newline='') as f:
    writer = csv.writer(f)

    for file1 in filelist1:

        if len(file1)<4:

            filelist2 = sorted(os.listdir(file1))
            for file2 in filelist2:

                path = os.path.join(filepath, file1, file2)
                frames = glob.glob(path+'/*.[jp][pn]g')
                num_frame =len(frames)
                sum_frames +=num_frame
                writer.writerow([num_frame])
                sum_file +=1
                # print(path, num_frame)
    print('totoal number frames:', sum_frames)
    print('totol file:', sum_file)

判断是否未图像

images_names = [f for f in os.listdir(videos[i] + frames_path) if
              f.endswith(('.jpg', '.jpeg', '.png'))]
images_names.sort()

检查文件夹是否存在

另外在一些创建文件夹操作中,使用os.path.exists可以避免重复操作

if not os.path.exists(filename): 
    os.makedirs(filepath)

检查是否为文件夹

for ....:
    if not example_folder.is_dir():
        continue

获得当前绝对路径

from pathlib import Path
default_data_dir = Path(__file__).resolve().parent.parent / "data"

删除路径下所有文件和文件夹

在这里插入代码片
通达信主力检测利器 主力轨迹:100*EMA(EMA(MTM,N1),N1)/EMA(EMA(ABS(MTM),N1),N1),COLORWHITE;主力拉高:IF(VAR51<REF(VAR51,1),VAR51,0),COLORYELLOW,NODRAW;洗盘:IF(VAR5<REF(VAR5,1),VAR5,0),COLOR000079,NODRAW;主力进场:IF(VAR5>REF(VAR5,1),VAR5,0),COLORRED,NODRAW;MAZL:MA(主力轨迹,N2),COLORYELLOW; 阅读详情

相关推荐

EPLAN 设备接线图模板制作

属性摆放 设备连接图设置(选项 - - 设置) 连接图生成

weixin_36447711的博客 7865

os.walk()获取当前目录下的全部文件

import os filename = './test' filename, *_= os.walk(filename,topdown=True) *_, filenames = filename print(filenames)

莺声门径的博客 1510

ElectrolyteGPT:首个电池电解液逆向设计的生成式 AI 系统 —— 算法原理与复现解析

数据驱动的重要性:1100 万→100 万的精心筛选,比单纯增大模型更有效领域适配:fLine 表示法、正则分词、化学感知的数据增强(SMILES randomization)都是关键小模型的力量:6M 参数在特定化学空间的表现,远超通用大模型在相同任务上的零样本能力条件生成的极限:10 维条件导致模型崩溃,提示我们需要更好的条件编码策略(如 diffusion guidance、RLHF-style 偏好优化)未来方向配方实验验证。

ASKCOS博客 124

os.walk(path)遍历path下的所有目录和文件

设有如下目录(红色)和文件(黑色)树状结构,我当前的python代码在me的位置。 任务:遍历file这个目录下的所有目录和文件,打印名称。 import os for parent,dirnames,filenames in os.walk("./file"): print(parent,dirnames,filenames) 其中walk()函数就是遍历的意思,"./file"表示基于当前代码(me)的相对路径(也可以用绝对路径哦)。 结果如下: 解析:walk()函数固定是每一行有3项,但是

qq_43391414的博客 6137

ARM功耗管理之功耗状态及功耗模式

思考:功耗状态?功耗模式?Core&Cluster&Device&SoC如何映射?

AI-安全-功耗 784

ContextCapture系列教程(三):大疆精灵4RTK版无人机POS数据提取、处理(处理后勉强达到免相控要求)

大疆精灵 Phantom 4 RTK于2018年发布,是大疆为高精度建图与精准飞行设计的行业级无人机,在精灵4无人机外形的基础上,机身增加了RTK模块,可以实现高精度 RTK 定位导航,相机与 RTK 系统采用微秒级时间同步,可以通过app 进行航线规划飞行

pausau的博客 1万+

Python os.walk方法(获取文件夹目录下的内容)

import os def file_name(file_dir): for root, dirs, files in os.walk(file_dir): print(root) # root 所指的是当前正在遍历的这个文件夹的本身的地址 print(dirs) # dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录) print(files) # files 同样是 list , 内容是该文件夹中所有的文件(不包

檬柠wan 1477

北斗导航:提高RTK定位精度的GIS应用

其中,RTK(Real-Time Kinematic)定位技术是一种实时差分定位技术,通过利用基准站的观测数据来对移动站的测量值进行差分处理,以提高定位精度。差分处理的关键是基准站的观测数据,基准站通过全球定位系统(如北斗导航系统)获取卫星信号并记录观测数据。通过使用RTK定位技术,结合北斗导航系统的观测数据和差分处理,可以实现高精度的定位结果。我们将介绍RTK定位的原理、使用北斗导航系统进行RTK定位的步骤,以及如何将定位结果与GIS数据进行集成和可视化展示。步骤1:设置基准站和移动站。

OvzStream的博客 476

python使用os.walk 遍历目录下的所有文件夹及文件路径

pyhon中的os库内置了一个非常强大的工具os.walk,可以让我们快速遍历文件夹内的内容 它包含了三个初始化迭代值,root 当前的根目录(相对dir而言), dirs 当前根目录下的所有文件夹, file当前根目录下的所有文件 walk的topdown参数,表示是否从上到下迭代,默认为True,改为False则从最底层开始。 import os class listpath(): def __init__(self,path,*args): self.paths = [

qq_16620025的博客 2096

软件崩溃时Visual Studio中看不到有效的调用堆栈,使用Windbg动态调试去分析定位

当在Visual Studio中遇到软件崩溃且无法查看详细调用堆栈时,可以使用Windbg进行动态调试去分析定位问题。

dvlinker的技术专栏 1万+

ABAP CDS 货币与计量单位换算全攻略:CURRENCY_CONVERSION、UNIT_CONVERSION 与 DECIMAL_SHIFT 的工程化实践

本文介绍了SAP ABAP CDS中三种单位/货币换算函数(UNIT_CONVERSION、CURRENCY_CONVERSION、DECIMAL_SHIFT)的实战应用。重点包括:各函数的职责边界与适用场景,参数配置与精度控制策略,以及基于标准表(T006、TCUR*等)的换算规则来源。文章提供可运行的CDS示例,涵盖单位换算(如MI转KM)、货币汇率转换(含小数位处理)及纯小数位调整等典型场景,并强调生产环境中需注意的精度差异与审计风险控制。适用于企业报表、成本核算等需要统一口径的业务场景。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1554

python遍历目录压缩文件夹_干货|python笔记2-遍历文件夹目录os.walk()

如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件walk功能简介os.walk() 方法可以用于在文件目录中进行查找和遍历操作。os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。.top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。.root 所指的是当前正在遍历的这个文件夹的本身的...

weixin_39984963的博客 433

mabl:AI原生测试自动化平台的基础使用

mabl是一个基于人工智能和机器学习的云原生测试自动化平台。它通过使用先进的技术,如机器学习,自动创建和执行测试,自动分析测试结果,并根据需求的变化自动适配和维护测试。这样的自动化过程极大地提高了软件测试的效率和准确性。mabl的口号是 “You write code, mabl tests”,意味着开发者只需关注编写代码,而测试工作则可以交给mabl来完成。mabl的平台支持多种测试类型,包括 Web、App、Api、可访问性和性能测试,使得团队能够更快速、更有信心地发布软件。

blues_C的博客 3661

python 获取文件夹所有文件列表_python获取文件夹下所有文件及os模块方法

python获取文件夹下所有文件方法一:使用os.listdirimport osfor filename in os.listdir(r'c:\windows'):print filename方法二:使用glob模块,可以设置文件过滤import globfor filename in glob.glob(r'c:\windows\*.exe'):print(filename)方法三:通过os....

weixin_31748999的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

python 遍历文件夹得到子一级文件夹列表

Python遍历文件夹的子一级文件夹列表。有什么更好的方法请告诉我哈

xiaobai_ol的博客 2万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

python中如何打开一个文件夹中的所有文件-Python遍历目录中的所有文件的方法

os.walk生成器os.walk(PATH), PATH是个文件夹路径,当然可以用.或者../这样啦.返回的是个三元元组为元素的列表, 每个元素代表了一个文件夹下的内容.第一个就是当前文件夹下内容.返回的三元元组代表(该工作文件夹, 该文件夹下的文件夹的列表, 该文件夹下文件的列表).所以,获得所有子文件夹, 就是(d代表这三元元组):os.path.join(d[0],d[1]);获得所有子文...

weixin_39947306的博客 2582

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Python--递归与非递归遍历文件夹的方法

方法在遇到权限错误时也会抛出异常,但它提供了更现代的面向对象的API,可以与异常处理结合使用。递归是一种强大的技术,但需要谨慎使用。:如果程序运行在具有较少权限的用户下,考虑以更高权限运行程序,例如使用。:在某些情况下,可能需要修改文件夹的权限,以便用户可以访问。:如果程序是交互式的,可以向用户报告权限错误,并提示他们采取适当的行动。:记录权限错误的详细信息到日志文件中,有助于事后分析。之前,先检查子目录的权限,如果无权限则不进行递归。是一个迭代器,可以遍历目录中的文件和目录。

mmd666的博客 1624

Python文件夹遍历

Python文件夹遍历

Rolei的博客 2397

python中如何打开一个文件夹中的所有文件-Python列出一个文件夹及其子目录的所有文件...

python简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。>>> import os>>> for i in os.walk(".")...

weixin_39602560的博客 2582

数据处理 |遍历所有文件夹及子目录文件夹方法总结与实例代码详解

深度学习中不可避免的数据预处理~1. glob.glob()方法2. pathlib中的Path方法3. os.walk()方法。

weixin_44649780的博客 3509

python列出文件夹列表_Python列出一个文件夹及其子目录的所有文件

python简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。>>> import os>>> for i in os.w...

weixin_39941732的博客 818

python循环遍历所有目录_Python遍历目录中的所有文件的方法

os.walk生成器os.walk(PATH), PATH是个文件夹路径,当然可以用.或者../这样啦.返回的是个三元元组为元素的列表, 每个元素代表了一个文件夹下的内容.第一个就是当前文件夹下内容.返回的三元元组代表(该工作文件夹, 该文件夹下的文件夹的列表, 该文件夹下文件的列表).所以,获得所有子文件夹, 就是(d代表这三元元组):获得所有子文件, 就是:以下例子使用了两套循环, 遍历后得到...

weixin_39828859的博客 1288

【python】os.walk() 和 os.path.join() 和 glob.glob()

1、用法:os.walk(top, topdown = True, onerror = None, followlinks = False) 返回:得到一个三元tupple(dirpath,dirnames,filenames), 第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。 dirpath是一个string,代表目录的路径, dirnames是一个l...

weixin_42338058的博客 5284

python列出文件夹所有文件_Python列出一个文件夹及其子目录的所有文件

python简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。>>> import os>>> for i in os.walk("."):... print...

weixin_39730801的博客 250

python列出文件夹所有文件_python列出文件夹下的所有文件的4种方法

jincon 发表于 2015-01-28 23:56:00发表在:python开发python列出文件夹下的所有文件的4种方法#方法1:使用os.listdirimport osfor filename in os.listdir(r'c:\windows'):print filename#方法2:使用glob模块,可以设置文件过滤import globfor filename in glob....

weixin_39908106的博客 1493

python 遍历目录_python遍历目录

广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!我曾经写了c语言的遍历目录、php的遍历目录,今天来说一下python遍历目录,也算给大家一个对比,以及学习我上面说的:文件操作。 ---- 程序要实现的目的是遍历某个目录,并把其中的所有文件中某段内容替换掉。 import os def replace_str(filepath,s...

weixin_39809140的博客 374
上一篇: python 图片改变尺寸 resize(二) cv2 tensorflow PIL
下一篇: 信息论中熵 联合熵 条件熵 相对熵(KL散度)(交叉熵) 互信息 (信息增益)的定义 及关联
老光头_ME2CS
博客等级 码龄8年 396粉丝 97原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值