042 将文件夹中图片按照横屏竖屏进行分类

代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
"""
可以遍历输入的路径的指定后缀的文件,主要是用来筛选图片,将图片分成
横屏,竖屏分别存放在两个文件夹中
"""
from PIL import Image
import os
import os.path
from tqdm import tqdm
import shutil
import ctypes
import time
import random
import tkinter as tk
from tkinter import filedialog
import json
import re

#函数查找指定路径中所有文件的路径
#函数查找指定路径中所有文件的路径
def get_file(path):
    list1=[]#用于存储递归查找到的所有文件,传递给函数
    fileList = os.listdir(path)  # 获取path目录下所有文件
    for filename in fileList:
        pathTmp = os.path.join(path,filename) # 获取path与filename组合后的路径
        if os.path.isdir(pathTmp):  # 如果是目录
            a=get_file(pathTmp) # 则递归查找(注意一定要有接受变量,不然就出错了)
            for i in a:
                list1.append(i)
        else: 
            list1.append(pathTmp)
    return list1

# path = input('请输入路径:').strip()  #.strip()去除首尾的空格



#筛选后缀函数,传入包含所有后缀名的列表,以及需要筛选的后缀(默认筛选txt文件)
def shai_xuan_hou_zhui(file_path_list,hou_zhui):

    list2=[]  #用于储存筛选好的文件的路径
    for filepath in file_path_list:
        # os.path.splitext():分离文件名与扩展名
        if os.path.splitext(filepath)[1] in hou_zhui :
            list2.append(filepath)
    #        print(filepath +'\n')

    return list2

while True:
    root = tk.Tk()
    root.withdraw()
    path = filedialog.askdirectory()
    file_path_list=get_file(path)


    #拷贝jpg,png.webp等文件
    hou_zhui = [".jpg",".png",".webp",".jpeg",".bmp"]
    pig_list=shai_xuan_hou_zhui(file_path_list,hou_zhui)   #筛选jpg格式文件
    # print(txt_list)
    folder1 = path+"/横"
    folder2 = path+"/竖"

    if not os.path.exists(folder1):
        os.mkdir(folder1)
    if not os.path.exists(folder2):
        os.mkdir(folder2)

    # folder1='F:\\私密文件\\精选黄图\\横'  #存放横屏图片的地址
    # folder2='F:\\私密文件\\精选黄图\\竖' #存放竖屏图片的地址

    for i in tqdm(range(len(pig_list))):
        lujing=pig_list[i]
        picture=Image.open(lujing)
        width=picture.width
        height=picture.height
        picture.close()
        try:
            if width > height:
                # shutil.move(lujing,folder1)
                shutil.move(lujing,folder1)
            else:
                shutil.move(lujing,folder2)
        except Exception:
            pass
    # 拷贝gif文件
    folder3 = path+"/gif"
    if not os.path.exists(folder3):
        os.mkdir(folder3)
    hou_zhui = [".gif",".webm"]
    pig_list=shai_xuan_hou_zhui(file_path_list,hou_zhui)   #筛选jpg格式文件
    for i in tqdm(range(len(pig_list))):
        try:
            lujing=pig_list[i]
                # shutil.move(lujing,folder1)
            shutil.move(lujing,folder3)
        except Exception:
            pass

exe链接地址:

链接:https://pan.baidu.com/s/1v1h5yEbk6lMMTVjThHfZYA 提取码:lg6z