文件分类
学python第二节课
问题如下:
1.os及os.path操作
将mnist_train/dataset
文件夹内的文件根据标签放到mnist_train
内对应的文件夹中,并去掉标签并加上mnist_train_
前缀,例如将1_1.png
改为mnist_train_1.png
并将该文件放到mnist_tarin/1
文件夹中,作业提交代码。
意义:加强对路径的进一步认识,熟悉对文件的操作。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hhwI3XTK-1605323274561)(C:\Users\rui\Pictures\Typora\QQ截图20201114100635.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uyCpbwjV-1605323274563)(C:\Users\rui\Pictures\Typora\QQ截图20201114100821.png)]
题目描述:大概意思就是从dataset中把各个数字,分类到0、1、2、3、4、5、6、7、8、9、0文件夹中,并改名
代码如下:
import os
rootpath = "D:\\I\\college\\artificial intelligence\\os&&opencv\\mnist_train"
root1 = "D:\\I\\college\\artificial intelligence\\os&&opencv\\mnist_train\\dataset"
list1 = os.listdir(rootpath)
for dir_name in list1: #在list1中调用dir_name
for file_name in os.listdir(os.path.join(rootpath, dir_name)): #将dir_name与rootpath合并,并返回给file_name
temp = file_name.split('.',1)[0] #分离file_name中文件的文件名与后缀名,并把文件名赋给temp
name1 = temp.split('_',1)[0]
name2 = temp.split('_',1)[1] #分离temp中文件的文件名,根据_的前后分离,并将前面赋给name1,后面赋给name2
print (os.path.join(root1, file_name) + "\t\t" + os.path.join(rootpath, name2, 'mnist_train_' + name1 + ".png"))
os.rename(os.path.join(root1, file_name), os.path.join(rootpath, name2, 'mnist_train_' + name1 + ".png")) #重命名
运行结果:
如图:dataset文件夹里的0全部进入了0文件夹,其余数字也同理,所以datast里没有任何东西。