本帖最后由 salge 于 2021-9-26 17:40 编辑
(100%原创)本工具用python编写.它会扫描电脑中所有>500KB的图片,之后压缩成一个ZIP文件.
可以把ZIP放到云盘,非常简单就备份好珍贵的图片.
链接:https://pan.baidu.com/s/18uMIqy-kmNmUvw7khgHESg
提取码:z625
运行效果:
如果觉得500KB的图片不合适.我把原码放出,自行修改.
喜欢的点个赞.
还有一个多进程版本(速度超快...)
链接:https://pan.baidu.com/s/113LbgfqD44jzsL4d5eAdQA
提取码:2wb6
开始可能要等待几秒才有反应.之后就超快....
[Python] 纯文本查看 复制代码 import os,zipfile,random,time
#-------生成随机字符----------
def generate_random_str(randomlength=8):
random_str=''
base_str='ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789'
length=len(base_str)-1
for i in range(randomlength):
random_str += base_str[random.randint(0, length)]
return random_str
#-------生成zip文件----------
def zip_files(files):
a=1
random_str=generate_random_str()
zip = zipfile.ZipFile(random_str+'.zip', 'w', zipfile.ZIP_DEFLATED )
for file in files:
reversal_s=file[::-1]
filename=file[-reversal_s.index('\\'):]
for i in range(50):
if len(filename)<50:
filename+=' '
else:
break
print('%d/%d|%s'%(a,len(files),filename),end='\r')
zip.write( file )
a=a+1
zip.close()
print ('压缩完成! \n')
return random_str+'.zip'
#-------获得全盘符-----------
def get_all_disk():
disk_l=[]
for i in range(56,91):
vol=chr(i)+':'
if os.path.isdir(vol):
disk_l.append(vol+os.path.sep)
return disk_l
#-------获得指定大小\类型的文件----------
def get_file_l(dir,file_type,size):
file_l=[]
for path,dirs,files in os.walk(dir):
if files!=[]:
for i in files:
if i[-len(file_type):]==file_type and i[:2]!='~$' and i[:1]!='$' and os.path.getsize(path+os.path.sep+i)>size:
file_l.append(path+os.path.sep+i)
return file_l
#--------主main----------
if __name__=='__main__':
s_time=time.time()
os.system('mode 90,20')
sumfile_l=[]
print('请稍等...')
for i in get_all_disk():
for file in get_file_l(i,'.jpg',512000):
sumfile_l.append(file)
print('共找到%s个图片'%(len(sumfile_l)))
time.sleep(3)
print('开始压缩图片...')
zip_name=zip_files(sumfile_l)
e_time=time.time()
print('用时:%.2f秒'%(e_time-s_time),'\n')
input('压缩文件放在当前目录,文件名:(%s),回车键退出。'%(zip_name)) |