Python文件遍历os.walk()与os.listdir()使用及说明
作者:KGzhang 发布时间:2022-11-10 21:53:36
Python文件遍历os.walk()与os.listdir()
在图片处理过程中,样本数据的组织是个常见的问题,样本组织好了,后面数据转换、读取等都能得心应手。
在这里讲一下我在准备样本时的一些心得
首先是os.walk()函数
os.walk(path)返回三个值:
parent
dirnames
filenames
分别表示path的路径、path路径下的文件夹的名字和path路径下文件夹以外的其他文件;
我用下面的代码来对样本图片建立标签:
不过不知walk到底是怎么遍历的,我生成的标签顺序乱了
所以这就想到用listdir来重新做标签:
os.listdir(path)返回一个包含path路径下所有文件的列表
我用下面的方法来建立标签:
不过还是之前一样的乱序,最后采用sort():
先获取文件夹下图片文件的名字列表list,再对图片的序号进行排序,将排序好的文件名列表逐一写入txt中
os.walk和os.listdir遍历目录比较
假设存在下面的目录和文件结构:
/a ----> /b ----> 1.py,2.py
----> /c ----> 3.py , 4.py
----> 5.py
----> 6.py
os.walk()
运行下面的测试代码
import os
for root, dirs, files in os.walk('../a'): # 指向当前的测试文件夹
print(root)
print(dirs)
print(files)
输出结果,我们解析一下输出结果
../a # 当前遍历的根目录
['b', 'c'] # 根目录下的两个子目录b,c
['5.py', '6.py'] # 根目录下的两个子文件
../a\b # 遍历根目录下的子目录b
[] # 子目录b中的子目录
['1.py', '2.py'] # 子目录b中的文件
../a\c # 遍历根目录下的子目录c
[] # 子目录c中的子目录
['3.py', '4.py'] # 子目录c中的文件
os.listdir()
运行如下测试代码
for f in os.listdir('../a'):
print(f)
输出结果
5.py
6.py
b
c
两种方法比较
os.walk将当前目录下的所有子目录及其中的内容,都会遍历到;而os.listdir只会遍历当前目录中所包含的内容。当存在如下的目录级别时
/a ----> /b ------> b1.txt b2.txt
----> /c ------> c1.txt c2.txt
----> /d ------> d1.txt d2.txt
当我们想要将所有的txt文件提取出来,此时使用os.walk是最好的选择,直接将files遍历即可,因为files在其父目录成为根目录时,会将当前文件夹中的所有files遍历出来,即:
import os
for root, dirs, files in os.walk('./a'):
for file in files:
print(file)
#运行结果
b1.txt
b2.txt
c1.txt
c2.txt
来源:https://blog.csdn.net/KGzhang/article/details/72964785


猜你喜欢
- matplotlib官方文档:https://matplotlib.org/stable/users/index.htmlmatplotli
- 面试题:索引的作用?首先建立一张数据库表:create table single_table(id int not auto_increme
- 冒泡的表现近期用vue做了一个需求,大概是同一个区域,点击不同位置有不同的响应函数,还有个总的响应函数,好吧,如下图所示:他们的DOM结构如
- 本文实例为大家分享了JSP实现客户信息管理系统的具体代码,供大家参考,具体内容如下项目示意图大概这样吧。我自己画的 登录界面代码index.
- 本文实例讲述了Go语言实现的简单网络端口扫描方法。分享给大家供大家参考。具体实现方法如下:package mainimport ( 
- 阅读上一篇:微软建议的ASP性能优化28条守则(3) 技巧 8:迟一点获得资源,早一点释放资源 这里是一个小技巧供您参考。一般来说,最好迟一
- 听名字就知道这个函数是用来求tensor中某个dim的前k大或者前k小的值以及对应的index。用法torch.topk(input, k,
- 1,reload 方法该方法强迫浏览器刷新当前页面。语法:location.reload([bForceGet])参数: bForceGet
- 本文实例讲述了Python3读取zip文件信息的方法。分享给大家供大家参考。具体实现方法如下:该程序接受一个字符串,其内容是一个zip文件,
- 单表备份代码:<?php class Db { &n
- centos6.x默认安装的python为2.6版本,今天换成了3.5版本这里不再讲如何升级python版本在安装完新的版本后,之前安装的插
- 通常我们在制作上图的时候,会分别给四个div加上不同的css属性,来实现中间间隔。但我们更希望的是不需要对html标签做标识,直接能通过cs
- 实例是具象化的类,它可以作为类访问所有静态绑定到类上的属性,包括类变量与方法,也可以作为实例访问动态绑定到实例上的属性。实例1:class
- 一、报错: 「Can't swap PDO instance while within transaction」通过查询 Larav
- 一直用pycharm写代码一直用anaconda管理python环境但是今天我居然发现我不会更改pycharm当前的运行环境到我新建的ana
- 1、首先,界面上有个按钮触发操作:<button type="button" class="layui-
- 一、绘制折线图import seaborn as snsimport numpy as npimport pandas as pdimpor
- ?图解redis通信协议请求协议:请求协议一般格式:*<参数数量> CR LF$<参数 1 的字节数量> CR LF
- 本文实例讲述了python标准算法实现数组全排列的方法,代码来自国外网站。分享给大家供大家参考。具体分析如下:从n个不同元素中任取m(m≤n
- 相信很多人在使用Ajax与后台php页面进行交互的时候都碰到过中文乱码的问题。JSON作为一种轻量级的数据交换格式,备受亲睐,但是用PHP作