我有一個由壓縮的內容和一個32字節的頭組成的文件。標題包含時間戳,壓縮大小和未壓縮大小等信息。如何強制zlib解壓超過X字節?
該文件本身約爲490mb,標題表示未壓縮的大小接近2.7gb(顯然不正確,因爲它也認爲壓縮大小爲752mb)。
我已經剝離了標題並生成了壓縮的有效內容,並且可以使用zlib對其進行解壓縮。
問題是,它只是解壓縮19kb,這比490mb小得多(應該是最低限度,但我預計大約700mb未壓縮)。
我的代碼如下:
import zlib
def consume (inputFile):
content = inputFile.read()
print "Attempting to process " + str(len(content)) + " bytes..."
outfile = open('output.xml', 'w')
inputFile = zlib.decompress(content)
print "Attempting to write " + str(len(inputFile)) + " bytes..."
outfile.write(inputFile)
outfile.close()
infile = open('payload', 'rb')
consume(infile)
infile.close()
運行時,該程序的輸出:
嘗試處理489987232個字節... 試圖寫入18602個字節...
我試過使用zlib.decompressionobj()
,雖然這會產生不正確的標題警告。 zlib.decompress()
工作正常,併產生我期望的解壓縮XML ......只是太少了。
任何指標或建議,非常感謝!
該文件來自哪裏?您是否可以重新下載它,回滾到以前的版本,從備份恢復等? – abarnert
由於內容的描述不同,Th文件肯定聽起來很腐敗。 – nneonneo
@abarnert該文件由合作公司提供(在Dropbox上)。我可以試着找到另一個並放棄它。感謝指針 - 我一直假設我的代碼或方法是不正確的,但如果它證明是一個重大緩解的文件! – jscarto