2015-02-06 65 views
0

我想創建並擔任一個zip文件中包含的iCal文件不同的工人(每個工人都有自己的iCal文件)用戶web2py的服務zip文件

的問題是,我得到的iCal的權數文件在我的zip文件中,但最後一個文件包含來自之前工作人員的所有數據。 (也可等前一個)

這是我使用

代碼我在做什麼錯?

這是我的代碼

cal = Calendar() 
import zipfile, cStringIO 
exported_chunks_zip = cStringIO.StringIO() 
zipf = zipfile.ZipFile(exported_chunks_zip, "w", compression=zipfile.ZIP_DEFLATED) 

for i, rec in enumerate(grouped): 
    worker = rec['rw_worker_nick'].encode('cp1250') 
    for rr in rec["allData"]: 
     startDate = rr['rw_date'] 
     startTime = rr['rw_time_start'] 
     endTime = rr['rw_time_end'] 
     evtstart = datetime.datetime.combine(startDate,startTime) 
     evtend = datetime.datetime.combine(startDate,endTime) 
     event = Event() 

     event.add('summary', rec['rw_worker_nick']) 
     event.add('dtstart', evtstart) 
     event.add('dtend', evtend) 
     cal.add_component(event) 
     text = cal.to_ical() 
    zipf.writestr(worker +'.ics', text) 
    text = '' 

有什麼建議?

謝謝

回答

1

您的for循環之外創建只有一個Calendar對象,然後繼續追加事件給它。

for i, rec in enumerate(grouped): 
    cal = Calendar() 
    ... 
+0

能否請您闡述一下怎麼能夠通過瀏覽器下載此壓縮文件:你不是應該在for循環中爲每個工人一個新Calendar對象?我在這裏提出了詳細的問題:https://stackoverflow.com/questions/44804747/web2py-downloading-zip-file-created-by-cstringio-text-strings-in-controller – NightFury13 2017-06-28 14:10:52