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
猜你喜欢
- 简单计数器代码如下所示:<% Set fs = CreateObject("Scri
- 在本节描述的示例代码,提供真实的例子来示范在 FileSystemObject 对象模式中可用的许多功能。该代码显示了如何一起使用对象模式的
- 例1import osprint 'Process (%s) start...' %os.getpid()pid = os.
- 呵呵,先说明一下下面的程序大部分收集自网络,因为本人在asp编程中经常使用到随机函数,所以收集了一些这类的函数,并做了些注释,方便使用。首发
- CSS换肤技术一直是一个比较热门的话题,通过给HTML文档不同的CSS样式应用,实现完全不同或风格迥异的页面效果。这样的技术一直为大家所津津
- MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列
- 1.打包多个py文件并且去除cmd黑框格式:pyinstaller.exe -F 路径\文件名.py空格路径\文件名.py空格--nocon
- 米随随在国外某站看到的国际上十四个优秀网页设计审核站,他发现还有中国的哦~HOHO~1.荷兰 strangefruits &nb
- 如下所示:在def __init__(self):函数里添加self.setFixedSize(self.width(), self.hei
- 这个javascript农历日历,万年历代码网上看到的,很不错,功能齐全,值得收藏!功能介绍:动态显示当前世界各国各时区时间,显示当前农历,
- HTML在线编辑器相信大家见得多了,有些流行的在线编辑器具有很丰富的功能。但美中不足的是,现有的HTML在线编辑器设置字号大小通常只限于1-
- 这篇文章主要介绍了Python线程条件变量Condition原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- 前言本文主要给大家介绍的是关于在Python3使用PyMongo的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细介绍:Mong
- python爬取淘宝商品销量的程序,运行程序,输入想要爬取的商品关键词,在代码中的‘###'可以进一步约束商品的属性,比如某某作者的
- 程序中经常需要使用excel文件,批量读取文件中的数据python读取excel文件可以使用xlrd模块pip install xlrd安装
- 全国抗"疫"这么久终于见到曙光,在家待了将近一个月,现在终于可以去上班了,可是却发现出门必备的口罩却一直买不到。最近看到
- 阅读上一篇:打造设计你自己的字体 Ⅱ永远都在寻觅字体设计的灵感。夏天过后,我买了一套便宜的书法钢笔,说服自己,它会让我的鸡爬字产生脱胎换骨的
- 因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。当然,其它字段可以辅助我们在执行这些操作时消除共
- 这个decorator是什么意思呢?很简单,它接受一个log的参数,即传入logger对象。然后它会先把函数名打印出来,接下来,会利用enu
- 本文实例讲述了python追加元素到列表的方法。分享给大家供大家参考。具体实现方法如下:scores = ["1",&q