+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

压缩属于同一个月的文件

发布于2020-05-16 14:52     阅读(1193)     评论(0)     点赞(28)     收藏(0)


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

但是由于排序不正确,它会返回异常结果。我想根据月份对zip文件进行压缩,并将压缩后的文件命名为相应的monthyear。


解决方案


由于您的文件采用YYYY-MM-DD格式,因此您可以按字典顺序对其进行排序。

更换

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

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

对于大量的.csv文件,这可能变得不太容易处理,您可能需要重新考虑算法,但是对于少数几个文件,这很好。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/374275/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

28 0
收藏该文
已收藏

评论内容:(最多支持255个字符)