前言
1.有的时候比如我们操作错了,将一个文件夹里的.png图片都弄到了不同的文件夹中,现在想还原,如果一个个手工选择剪切,恐怕不是一个好办法。
2.有的时候,想把某个目录下的所有文件夹中的jpg格式的图片,放在一起,这个时候,就可以用这个方法去做。
方法
通过Python中os.path.walk()方法,进行读取目录下所有文件,然后在这个方法中进行判断指定,就可以得到我们想要的内容。
代码如下:
1.想要设定,指定的那些文件夹进行操作
import os
import shutil
# 指定路径
path ='/sxl/result'
def get_filelist(path):
‘‘’
可以设置几个list,用来存我们想要的文件格式
’’’
list_cfg = []
list_png = []
list_jsons = []
list_result = []
# 有时候 想要设定,指定的那些文件夹进行操作,就可以设置文件夹列表,然后从这些列表的路径中进行寻找
for i in range(1,40):
list_result.append("result_"+"{:02}".format(i))
for rel in list_result:
imgPath = os.path.join(path,rel)
for home, dirs, files in os.walk(imgPath):
for filename in files:
# # 文件名列表,只包含文件名
if filename.endswith(".cfg"): # 判断是否是"xxx"结尾
list_cfg.append(os.path.join(home, filename))
if filename.endswith(".png"): # 判断是否是"xxx"结尾
list_png.append(os.path.join(home, filename))
return list_cfg,list_png
if __name__ =="__main__":
list_cfg, list_png = get_filelist(path)
print(list_cfg)
for img in list_cfg:
shutil.move(img,"/home/sxl/Test_img/cfg")
for img in list_png:
shutil.move(img,"/home/sxl/Test_img/png")
2.从一个大的目录进行寻找
import os
import shutil
path ='/home/sxl/Desktop'
def get_filelist(path):
for home, dirs, files in os.walk(imgPath)
for filename in files:
# 文件名列表,包含完整路径
print(home)
Filelist.append(os.path.join(home, filename))
return Filelist
if __name__ =="__main__":
Filelist = get_filelist(path)
print(len(Filelist))
for file in Filelist :
print(file)
基于这两种代码方法进行修改,基本上可以满足大部分的寻找文件夹内的指定格式文件,或者进行从多个文件夹中还原至一个文件夹的需求。