**学习的过程中遇到了os模块的walk函数,经过help查询帮助后大致明白了什么意思:**
os.walk(top,topdown=True,οnerrοr=None)需要三个参数,其中top是必须给出的路径变量,后两个可以不给,但是系统默认的有值,就是上面写的那种。
它的返回值是元组的形式,包括每次遍历的路径名,文件夹名,文件名(其中文件路径是字符串形式的,文件夹是列表,文件名也是列表):下面是我的python文件夹里面的内容,其中有20120627和class两个文件夹,可以看到结果中三个元组,第一个是所给的路径下面的文件,第二个是20120627这个文件夹下的文件(如果它下面还有文件夹就会继续遍历),第三个是class的文件夹的文件:
代码块
下面是我项目中写的一段代码,第一个是遍历“E:/GEI”目录下的图片文件,并且用下划线分割,取得标签数据存入相应的目录中
第二个是在Windows下用Python遍历文件夹的例子:
@requires_authorization
import os
import shutil
path = 'E:/GEI'
new_path = 'F:/kerasDataset'
for root, dirs, files in os.walk(path):
if len(dirs) == 0:
for i in range(len(files)):
print files[i]
# if files[i][-3:] == 'png':
label = files[i].split("_")[0]
singleNum = files[i].split("_")[1].split(".")[0]
if int(singleNum) % 11 == 6:
file_path = root + '/' + files[i]
new_file_path = new_path + '/' +files[i]
shutil.copyfile(file_path, new_file_path)
else:
continue
import os
import shutil
path = 'E:/beianwenjian'
for root, dirs, files in os.walk(path):
print root, dirs, files
for i in os.walk(path):
print i
输出:
E:/beianwenjian ['images'] ['20170925085134.jpg', 'authentation.jpg', 'authention.jpg', 'beiannumber.png', 'education_audit.png', 'farendaibiaozhegnshu.pdf', 'IMG_20170816_135537.jpg', 'IMG_20170916_100518.jpg', 'jianzhiweiwenjain.pdf', 'mabeimian.jpg', 'mazhegnmian.jpg', 'QQ20170925085126.jpg', 'shenfenzhegnyingyinjian.doc', 'u2c.top(1).jpg', 'u2c.top.jpg']
E:/beianwenjian\images [] ['0001.jpg']
('E:/beianwenjian', ['images'], ['20170925085134.jpg', 'authentation.jpg', 'authention.jpg', 'beiannumber.png', 'education_audit.png', 'farendaibiaozhegnshu.pdf', 'IMG_20170816_135537.jpg', 'IMG_20170916_100518.jpg', 'jianzhiweiwenjain.pdf', 'mabeimian.jpg', 'mazhegnmian.jpg', 'QQ20170925085126.jpg', 'shenfenzhegnyingyinjian.doc', 'u2c.top(1).jpg', 'u2c.top.jpg'])
('E:/beianwenjian\\images', [], ['0001.jpg'])
参考博客,http://blog.csdn.net/chen861201/article/details/7703629