2017-02-06 1 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'가 있습니까? 당신은 그들을 분류하고, 월별로 파티션을 나누고, 각 파티션을 압축 할 수 있습니다. – erip

+0

20 @ erip 이상 – user2398267

+0

날짜순으로 정렬 한 다음 그에 따라 zip 파일로 작성하십시오 –

답변

1

파일이 YYYY-MM-DD 형식이므로 사전 식으로 정렬 할 수 있습니다.

이 .CSV 파일의 거대한 숫자 덜 다루기 쉬운 될 수 있습니다

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

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

로 교체하고 당신은 당신의 알고리즘을 다시 생각해야 할 수도 있습니다,하지만 소수에 대한 , 괜찮아.

관련 문제