2017-02-06 35 views
2

我有一個名爲「DataFiles」的文件夾,有如下文件: 2016-04-26.csv,2016-04-27.csv,2016-05-12.csv。 .. 我要壓縮屬於同一月CSV文件... 的,我想下面的代碼:在它返回不尋常的結果的排序順序壓縮屬於同一個月的文件

import datetime 
import os 
import zipfile 

yearP= None 
monthP = None 

for csvfiles in os.listdir("DataFiles"): 
    csvname, formata = csvfiles.split(".") 
    year, month, date = csvname.split("-") 
    if (yearP==year and monthP == month): 
     zip = zipfile.ZipFile('%s.zip' %monthyear , 'a') 
     zip.write('%s.csv' %csvname) 
     yearP= year 
     monthP = month 
    else: 
     zip = zipfile.ZipFile('%s.zip' %monthyear , 'a') 
     zip.write('%s.csv' %csvname) 
     yearP= year 
     monthP = month 

但由於沒有。我想壓縮根據月份並將壓縮文件命名爲相應月份。

+0

有多少'.csv's?您可以對它們進行排序,按月分區,然後壓縮每個分區。 – erip

+0

超過20 @ erip – user2398267

+0

按日期對它們進行排序,然後將其寫入相應的zip文件中 –

回答

1

由於您的文件格式爲YYYY-MM-DD,因此可以按字母順序對其進行排序。

更換

for csvfiles in os.listdir("DataFiles"): 

for csvfiles in sorted(os.listdir("DataFiles")): 

這可能會成爲中的.csv文件數量龐大少聽話,你可能需要重新考慮你的算法,但對於少數, 沒關係。

相關問題