Python 如何有效地转换gzip文本文件的编码?

Python 如何有效地转换gzip文本文件的编码?,python,encoding,utf-8,gzip,Python,Encoding,Utf 8,Gzip,我有多个大型CSV文件(~1GB),它们被压缩为GZ。我的问题是它们是用ISO-8859-1编码的,我希望它们是用UTF-8编码的 显然,我可以解压每个文件,将它们转换为UTF-8,然后再将它们压缩回来,但在我看来,这在内存方面效率很低 有没有一种干净有效的方法可以在现场执行此操作并避免临时存储大文件?您提到了两个不同的问题,“内存效率低下”和“临时存储大文件”,就好像它们是一个问题一样。他们不是 您当然不需要也不应该将整个文件加载到内存中。您可以使用Python的GzipFile类读取文件的小

我有多个大型CSV文件(~1GB),它们被压缩为GZ。我的问题是它们是用ISO-8859-1编码的,我希望它们是用UTF-8编码的

显然,我可以解压每个文件,将它们转换为UTF-8,然后再将它们压缩回来,但在我看来,这在内存方面效率很低


有没有一种干净有效的方法可以在现场执行此操作并避免临时存储大文件?

您提到了两个不同的问题,“内存效率低下”和“临时存储大文件”,就好像它们是一个问题一样。他们不是

您当然不需要也不应该将整个文件加载到内存中。您可以使用Python的GzipFile类读取文件的小块,然后将小块写回。所以没有记忆问题


在执行此操作时,您需要将输入文件保留在大容量存储器中,直到输出文件完成,此时您可以删除输入文件。虽然可以避免在大容量存储中使用中间未压缩文件,但至少暂时需要,有足够的空闲大容量存储空间来存储文件的第二个副本。

以一个兆字节的大小读/写它们?你应该能够使用我在这篇文章中介绍的技术一次读一行并处理它们,以解决关于Gzip文件的另一个问题-不确定这是否会更有效率,但它会占用更少的内存。