-3
我跑到下面的代碼:Python的步行目錄結構和拉鍊子目錄
import zipfile
import glob
import datetime
import os
from collections import defaultdict
from shutil import copyfile
src = 'X:\\'
for name in glob.glob('X:\*'):
print name
dict_date = defaultdict(lambda : defaultdict(list))
for fil in os.listdir(src):
if os.path.isfile(os.path.join(src, fil)):
date, logs = fil.split('_')[0], fil.split('_')[2]
dict_date[date][logs].append(fil)
for date in dict_date:
for logs in dict_date[date]:
try:
os.makedirs(os.path.join(src, date, logs))
except os.error:
pass
for fil in dict_date[date][logs]:
copyfile(os.path.join(src, fil), os.path.join(src, date, logs, fil))
for date in dict_date:
with ZipFile(os.path.join(path, '{0}.zip'.format(date)), 'w') as myzip:
for logs in dict_date[date]:
for fil in os.listdir(os.path.join(path, date, logs)):
if fil.endswith('.log'):
myzip.write(os.path.join(path, date, logs, fil))
下面是結果:
>>>
X:\082012
X:\092012
X:\20120830
X:\20120830_7Days_ISDA_Logs_HS.zip
X:\20121001
X:\20121002
X:\20121003
X:\20121004
X:\20121005
X:\20121006
X:\20121007
X:\20121008
X:\20121009
X:\20121010
X:\20121011
Traceback (most recent call last):
File "C:\Documents and Settings\tyoffe\Desktop\isda_zip.py", line 31, in <module>
with ZipFile(os.path.join(path, '{0}.zip'.format(date)), 'w') as myzip:
NameError: name 'ZipFile' is not defined
>>>
對不起。我需要在哪裏定義'路徑'。非常感謝你提前回傳(最近的最後一次呼叫): 帶有zipfile.ZipFile(os.path.join(路徑,文件和路徑))的文件「C:\ Documents and Settings \ tyoffe \ Desktop \ isda_zip.py」,第31行, '{0} .zip'.format(date)),'w')as myzip: NameError:name'path'is not defined >>> –
@ user1741381您應該在第31行之前定義'path'你用吧)。有問題的路徑是'os.path.join()'的第一個參數。它看起來不像它在任何地方定義。 – Matt
確實!感謝兩位向我展示我的疏忽! –