压缩了属于同一个月的文件

2024-09-23 10:28:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为“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

但由于不按排序顺序,它返回不寻常的结果。我想根据月份压缩,并将压缩后的文件命名为相应的monthyear。你知道吗


Tags: 文件csvimportnoneoszipyearzipfile
1条回答
网友
1楼 · 发布于 2024-09-23 10:28:50

因为您的文件是YYYY-MM-DD格式的,所以您可以按字典顺序对它们进行排序。你知道吗

替换

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

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

对于大量的.csv文件,这可能变得不太容易处理,您可能需要重新考虑您的算法,但对于少量的文件,这是可以的。你知道吗

相关问题 更多 >