Python 压缩了属于相同月份的文件
我有一个名为“DataFiles”的文件夹,其中有如下文件: 2016-04-26.csv,2016-04-27.csv,2016-05-12.csv。。。 我想压缩属于同一个月的csv文件。。。 为此,我尝试以下代码:Python 压缩了属于相同月份的文件,python,zipfile,Python,Zipfile,我有一个名为“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 = csvfil
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 因为您的文件是
YYYY-MM-DD
格式,所以您可以按字典顺序对它们进行排序
替换
for csvfiles in os.listdir("DataFiles"):
与
对于大量的.csv文件,这可能变得不易处理,您可能需要重新考虑您的算法,但对于少量的文件,这很好。有多少个
.csv
s?你可以对它们进行排序,按月分区,然后对每个分区进行压缩。超过20@erip按日期将它们排序,然后按照顺序写入zipfile。你说不按排序是什么意思?问题到底是什么?@马蒂诺把你的月份考虑为<代码> 04, 05,04 < /代码>。
for csvfiles in sorted(os.listdir("DataFiles")):