def cleanup(stored_files, stored_dirs, download_list, outdir):
#create list of files to keep
keep_list = []
for folder, mails in download_list.items():
for mailid, mailfilename, mailsize in mails:
keep_list.append(mailfilename)
progressbar_widgets = [
'[Cleaning up outdir ] ',
progressbar.Percentage(),
progressbar.Bar(marker=progressbar.RotatingMarker()), ' ']
progressbar_instance = progressbar.ProgressBar(widgets=progressbar_widgets, maxval=len(stored_files)).start()
file_count = 0
#delete all files we don't need to keep
for file in stored_files:
#delete if not on server
if not file in keep_list:
os.remove(file)
#progressbar
file_count += 1
progressbar_instance.update(file_count)
progressbar_instance.finish()
#remove empty folders
possible_empty_folders = True
while possible_empty_folders:
#find all subfolders
stored_dirs = []
for root, dirs, files in os.walk(outdir):
for name in dirs:
stored_dirs.append(os.path.join(root, name))
#delete empty folders indicate next run if one folder was deleted
possible_empty_folders = False
for folder in stored_dirs:
if not os.listdir(folder):
shutil.rmtree(folder)
possible_empty_folders = True
评论列表
文章目录