【发布时间】:2009-08-09 05:01:42
【问题描述】:
所以,这是一个看似简单的问题,但我显然非常非常沉闷。我有一个从网页下载所有 .bz2 文件的小脚本,但由于某种原因,该文件的解压缩让我非常头疼。
我是一个Python新手,所以答案可能很明显,请帮助我。
在这部分脚本中,我已经有了文件,我只想将它读出到一个变量中,然后解压缩?是对的吗?我已经尝试了各种方法来做到这一点,我通常在这个 sn-p 的最后一行得到“ValueError:找不到流的结尾”错误。我试图打开 zipfile 并以无数种不同的方式将其写入字符串。这是最新的。
openZip = open(zipFile, "r")
s = ''
while True:
newLine = openZip.readline()
if(len(newLine)==0):
break
s+=newLine
print s
uncompressedData = bz2.decompress(s)
嗨,Alex,我应该列出我尝试过的所有其他方法,因为我尝试过 read() 方式。
方法一:
print 'decompressing ' + filename
fileHandle = open(zipFile)
uncompressedData = ''
while True:
s = fileHandle.read(1024)
if not s:
break
print('RAW "%s"', s)
uncompressedData += bz2.decompress(s)
uncompressedData += bz2.flush()
newFile = open(steamTF2mapdir + filename.split(".bz2")[0],"w")
newFile.write(uncompressedData)
newFile.close()
我得到错误:
uncompressedData += bz2.decompress(s)
ValueError: couldn't find end of stream
方法 B
zipFile = steamTF2mapdir + filename
print 'decompressing ' + filename
fileHandle = open(zipFile)
s = fileHandle.read()
uncompressedData = bz2.decompress(s)
同样的错误:
uncompressedData = bz2.decompress(s)
ValueError: couldn't find end of stream
非常感谢您的及时回复。我真的把我的头撞在墙上,因为无法解压缩一个简单的 .bz2 文件而感到非常沉重。
顺便说一句,使用7zip手动解压,以确保文件没有问题或任何东西,并且解压正常。
【问题讨论】:
-
你真的尝试过 Alex 的建议吗?
标签: python compression