1 """
2 2023年3月31日今日头条的web图片转换为JPG图片
3 """
4 import os
5 import hashlib
6 import shutil
7 from os import path
8 import sys
9 from PIL import Image
10
11 # 遍历文件夹
12 def walkFile(file):
13 for root, dirs, files in os.walk(file):
14
15 # root 表示当前正在访问的文件夹路径
16 # dirs 表示该文件夹下的子目录名list
17 # files 表示该文件夹下的文件list
18
19 # 遍历文件
20 for f in files:
21 fpath = os.path.join(root,f)
22 fsuffix = os.path.splitext(fpath)[1]
23 if fsuffix=='.py' or fsuffix=='.exe' or fsuffix=='.gif':
24 continue
25 try:
26 img = Image.open(fpath)
27 img.load()
28 fnewName = root+'\\'+get_file_md5(fpath)+fsuffix
29 print(fnewName)
30 img.save(fnewName)
31 if(fpath != fnewName):
32 os.remove(fpath)
33 except Exception as e:
34 print(e)
35
36
37 # 遍历所有的文件夹
38 for d in dirs:
39 print(os.path.join(root,d))
40
41
42 ##########################公共方法区开始##############################################
43
44 def get_file_md5(file_name):
45 """
46 计算文件的md5
47 :param file_name:
48 :return:
49 """
50 m = hashlib.md5() #创建md5对象
51 with open(file_name,'rb') as fobj:
52 while True:
53 data = fobj.read(4096)
54 if not data:
55 break
56 m.update(data) #更新md5对象
57 return m.hexdigest() #返回md5对象
58
59 def get_str_md5(content):
60 """
61 计算字符串md5
62 :param content:
63 :return:
64 """
65 m = hashlib.md5(content) #创建md5对象
66 return m.hexdigest()
67 ##########################公共方法区结束##############################################
68
69
70 def main():
71 walkFile(os.path.realpath('.')) #文件所在目录 D:\py_workspace\mypycode
72
73
74 if __name__ == '__main__':
75 main()