如何压缩文本文件?

时间:2016-06-26 19:46:06

标签: python python-2.7

我创建了一个文本文件,我想压缩它。

我将如何做到这一点?

我在论坛周围做了一些研究;发现了一个问题,类似于此,但是当我尝试它时,它不起作用,因为它是文本输入,而不是文件,例如

import zlib, base64
text = 'STACK OVERFLOW'
code =  base64.b64encode(zlib.compress(text,9))
print code

来自:(Compressing a file in python and keep the grammar exact when opening it again

当我试用它时出现了这个错误,例如:

hTraceback (most recent call last):
File "C:\Users\Shahid\Desktop\Suhail\Task 3.py", line 3, in <module>
code =  base64.b64encode(zlib.compress(text,9))
TypeError: must be string or read-only buffer, not file

以下是我使用过的代码:

import zlib, base64
text = open('Suitable.txt','r')
code =  base64.b64encode(zlib.compress(text,9))
print code

但我想要的是要压缩的文本文件。

2 个答案:

答案 0 :(得分:0)

https://docs.python.org/2/library/gzip.html

底部有一段题为“如何GZIP压缩现有文件的示例”

答案 1 :(得分:0)

您应该使用此代码执行您尝试的操作:

import zlib, base64
file = open('Suitable.txt','r')
text = file.read()
file.close()
code =  base64.b64encode(zlib.compress(text.encode('utf-8'),9))
code = code.decode('utf-8')
print(code)

但实际上它需要进行压缩,因为code的长度超过text