我目前有以下csv writer类:
class csvwriter():
writer = None
writehandler = None
@classmethod
def open(cls,file):
cls.writehandler = open(file,'wb')
cls.writer = csv.writer(cls.writehandler, delimiter=',',quotechar='"', quoting=csv.QUOTE_NONNUMERIC)
@classmethod
def write(cls,arr):
cls.writer.writerow(arr)
@classmethod
def close(cls):
cls.writehandler.close()
它可以生成正确的csv文件,而不必一次性将整个数组存储在内存中。在
但是,通过使用这段代码创建的文件可能非常大,所以我希望压缩它们,而不是编写未压缩的文件。(以节省磁盘使用量)。我也不能有效地将文件存储在内存中,因为我希望超过20gb的文件是经常出现的。在
结果文件的接收者通常不是他们PC机的系统管理员,也不是所有人都使用linux,所以我在能够用于此任务的算法类型上受到限制。最好,该解决方案将使用在Windows、OSX和任何linux发行版中本机可读(不需要可执行文件)的压缩方案。在
我发现gzip在Python中提供了一个非常方便的接口,但是在windows中读取gzip文件似乎很麻烦。。理想情况下,我会将它们放在zip存档中,但zip archive不允许您将数据附加到存档中已经存在的文件中,这会迫使我将整个文件存储在内存中,或者将数据写入几个我可以放入内存的较小文件中。在
我的问题是:有没有一个既能从两个世界中获益的解决方案呢?而不是附加到整个机器上的文件的可用性,而不是一个可以广泛使用的文件格式?在
提前感谢您的考虑!在
^{} 可能提供您正在寻找的功能。它有效地将短字符串附加到gzip文件中,用于将短消息附加到长日志的应用程序。在
相关问题 更多 >
编程相关推荐