Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python库将2GB压缩到300MB_Python_Compression - Fatal编程技术网

如何使用python库将2GB压缩到300MB

如何使用python库将2GB压缩到300MB,python,compression,Python,Compression,我有一百万个字符串数据并写入一个文件,我正在使用Pythongzip压缩,大约2gb大小,我想减少到250-300MB 有没有办法压缩更多数据并将其压缩到300MB 任何帮助都将不胜感激 谢谢 有时,您可以帮助gzip和其他算法在压缩之前对数据进行预处理 例如,如果您有一个图像,您可以尝试压缩当前像素和上一个像素之间的差异,而不是压缩原始像素数据 因此,不要只是压缩字符串数据,而是在使用数据本身的知识之前尝试对其进行预处理 不要只计算字符之间的增量:尝试规范化内容以减少差异(删除不需要的字符、最

我有一百万个字符串数据并写入一个文件,我正在使用Pythongzip压缩,大约2gb大小,我想减少到250-300MB

有没有办法压缩更多数据并将其压缩到300MB

任何帮助都将不胜感激


谢谢

有时,您可以帮助gzip和其他算法在压缩之前对数据进行预处理

例如,如果您有一个图像,您可以尝试压缩当前像素和上一个像素之间的差异,而不是压缩原始像素数据

因此,不要只是压缩字符串数据,而是在使用数据本身的知识之前尝试对其进行预处理

不要只计算字符之间的增量:尝试规范化内容以减少差异(删除不需要的字符、最后一个字符和行尾之间的空格、不需要的空格等)

如果字符串数据由字段组成(通常是这样),另一种有效的方法是压缩列而不是行。柱状数据往往具有较小的差异,gzip将很容易利用这一差异


请记住,从2GB压缩数据到300M压缩数据是很难实现的,您可能需要在解压缩后处理数据以使其可用。

有时您可以帮助gzip和其他算法在压缩前预处理数据

例如,如果您有一个图像,您可以尝试压缩当前像素和上一个像素之间的差异,而不是压缩原始像素数据

因此,不要只是压缩字符串数据,而是在使用数据本身的知识之前尝试对其进行预处理

不要只计算字符之间的增量:尝试规范化内容以减少差异(删除不需要的字符、最后一个字符和行尾之间的空格、不需要的空格等)

如果字符串数据由字段组成(通常是这样),另一种有效的方法是压缩列而不是行。柱状数据往往具有较小的差异,gzip将很容易利用这一差异


请记住,从2GB压缩数据到300M压缩数据将很难实现,您可能需要在解压缩后处理数据以使其可用。

您是说压缩的gzip数据为2GB(意味着未压缩的数据要大一些)?我不知道有哪种通用压缩算法比gzip好一个数量级,但您的特定数据可能具有可以进一步压缩的特性。无损压缩有一些限制。如果您正确地使用gzip,则不太可能将其压缩到如此远的程度。即使使用最快的配置文件,与最佳压缩的压缩比也不是1:8。是什么让您相信,从理论上讲,甚至可以将信息减少8倍?您愿意接受数据丢失吗?作为测试,你可以计算数据的香农熵;这可以给你们一个可能的压缩度量。我已经更新了我的示例程序。你们是说你们的压缩gzip数据是2GB(意味着你们的未压缩数据要大一些)?我不知道有哪种通用压缩算法比gzip好一个数量级,但您的特定数据可能具有可以进一步压缩的特性。无损压缩有一些限制。如果您正确地使用gzip,则不太可能将其压缩到如此远的程度。即使使用最快的配置文件,与最佳压缩的压缩比也不是1:8。是什么让您相信,从理论上讲,甚至可以将信息减少8倍?您愿意接受数据丢失吗?作为测试,你可以计算数据的香农熵;这可以给你们一个可能的压缩度量。我已经更新了我的示例程序,删除了所有额外的空格,并且测试数据中不需要这个值。我已经更新了我的示例代码,删除了所有额外的空格,并且测试数据中不需要值。我已经更新了我的示例代码