今天打开电脑无意中发现磁盘变红了,一顿操作后发现图片的储存空间有点大,经过分析图片有好多重复,就想着怎么删除这些图片,作为一个程序员总不能一个一个删除吧,也不现实,Python不是可以生产md5吗,可以生成图片的md5,然后对比自动删除重复的就可以了。
写完代码后,感觉少了点什么,能给文件生成md5,就能给字符串生成吧,于是完善了一下代码,封装成了一个函数,以后用到了可以直接拿过来,拿来主义就是好。代码附下:
#-*-coding:utf-8-*-
'''
Created on 2021-10-16
@author: 屹铭
'''
# 导入相关库
import hashlib
import os
import sys
# 使用方法 s代表字符串,f代表文件
def printUsage():
print ('Usage: [python] pymd5.py s/f <string>/<filename>')
# 生成文件的md5
def file_to_MD5(filePath):
if not os.path.isfile(filePath):
printUsage()
else:
tmpLength = 1024
m = hashlib.md5()
with open(filePath, 'rb') as f:
b = f.read(tmpLength)
while b != b'':
m.update(b)
b = f.read(tmpLength)
print(filePath, ' MD5:\t', m.hexdigest().upper())
# 生成字符串的md5
def string_to_md5(string):
md5_val = hashlib.md5(string.encode('utf8')).hexdigest()
print(string, ' MD5:\t',md5_val)
return md5_val
if __name__ == '__main__':
if 3 != len(sys.argv):
printUsage()
else:
f = sys.argv[1]
d = sys.argv[2]
if f == "s":
string_to_md5(d)
else:
file_to_MD5(d)
写完Python的代码,顺带手写了一个PHP,毕竟平时用PHP还是多一点。
<?php
$filename = "md5.py";
// 文件的md5
$md5file = md5_file($filename);
echo $md5file;
echo '<br>';
// 字符串的md5
$str = "md5.py";
echo md5($str);
?>
扫描二维码,在手机上阅读!
很方便