Python编写zlib压缩数据

Python编写zlib压缩数据,python,file,sorting,compression,zlib,Python,File,Sorting,Compression,Zlib,在开始之前,我使用的当前代码如下所示: with open(classFileName,"a+"): as openFile fileData = openFile.readlines() try: fileData = zlib.decompress(str(fileData)) except: pass with open(classFileName,"a+") as openFile: openFile.write(file

在开始之前,我使用的当前代码如下所示:

with open(classFileName,"a+"): as openFile
    fileData = openFile.readlines()
    try:
        fileData = zlib.decompress(str(fileData))
    except:
        pass

with open(classFileName,"a+") as openFile:
    openFile.write(fileData)

with open(classFileName,"a+") as openFile:
    fileData = []
    fileData = openFile.readlines()
    fileData.append(mergedData)

    fileData = sorted((a.strip().split() for a in fileData),key=operator.itemgetter(1))
    fileData = os.linesep.join(p[0] + ' ' + p[1] for p in fileData)

    fileData = str(fileData)
    zlib.compress(fileData)

with open(classFileName,"w") as openFile:
    openFile.write(fileData)
然而,这实际上抛出了一个错误,即在最后一行上预期有一个字符缓冲区对象

该文件的示例如下所示:

里斯5号
约翰7
亚历克斯2


有什么建议或帮助吗?我想压缩,以减少操纵分数。由于我这样做的原因,它看起来更好。不要担心原因。

Python中的字符串不能更改(字节对象也不能更改)-因此,即使不看文档,也可以推断,
zlib.compress
不能在原地修改
fileData{
。上面的代码片段只记录原始的fileData

发件人:

zlib.compress(string[,level])
压缩字符串中的数据, 返回包含压缩数据的字符串。级别是中的整数 0到9控制压缩级别;1最快并产生 最小的压缩,9是最慢的,产生最多的。0不是 压缩。默认值为6。如果存在错误异常,则引发错误异常 发生错误

所以

应该对你有用

 fileData = zlib.compress(fileData)