Я борюсь с этим кодом. Каждый раз, это дает мне zipfile с кучей дубликатов. Есть ли какое-нибудь простое решение для этого?
Часть namelist
- моя последняя идея, чтобы решить эту проблему, но она все еще не работает.
import os, time, zipfile
from os.path import basename
path = 'c:\\Users\\laptop'
def find(type, archname):
files = []
# r=root, d=directories, f = files
starttime = time.time()
for r, d, f in os.walk(path):
for file in f:
if '.'+type in file:
files.append(os.path.join(r, file))
zipp=zipfile.ZipFile('c:\\Users\\laptop\\backup\\'+archname+'.zip', 'w')
zipfiles=[]
zipfiles=zipp.namelist()
for f in files:
file=basename(f)
if file in zipfiles:
print('Element skipped')
else:
zipp.write(f, basename(f))
zipp.close()
print('\nTime: ' + str(round(time.time() - starttime, 2)) + 's')
print('Files found: ' + str(len(files)))
print('Enter type: ')
typ=input()
print('Enter zip name: ')
archname=input()
find(typ, archname)
print('Done.')