我有一個程序將所有文件放在不同的文件夾中,例如這些文件:如何壓縮在Python程序中新創建的文件夾?
20120809_1204567_cat_pic1.jpg
20120810_1204567_cat_pic1.jpg
20120811_1204567_cat_pic1.jpg
該程序創建3個不同的文件夾名稱的第一個號碼和一個子文件夾的名稱貓。現在我想壓縮這些文件夾,但在啓動程序之前我不知道每個文件夾的名稱。如何在創建這些文件夾後立即壓縮文件夾?
import zipfile
import glob
import datetime
import os
from collections import defaultdict
from shutil import copyfile
src = 'D:/Testing/src/'
for name in glob.glob('D:/Testing/src/*'):
print name
dict_date = defaultdict(lambda : defaultdict(list))
for fil in os.listdir(src):
if os.path.isfile(os.path.join(src, fil)):
date, animal = fil.split('_')[0], fil.split('_')[2]
dict_date[date][animal].append(fil)
for date in dict_date:
for animal in dict_date[date]:
try:
os.makedirs(os.path.join(src, date, animal))
except os.error:
pass
for fil in dict_date[date][animal]:
copyfile(os.path.join(src, fil), os.path.join(src, date, animal, fil))
directory = src
os.chdir(directory)
files = glob.glob('*.txt')
for filename in files:
os.unlink(filename)
files2 = glob.glob('*.png')
for filename in files2:
os.unlink(filename)
你有沒有試過shutil.make_archive()? – jfs 2012-07-09 13:28:36