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)