バイナリファイルをPythonで書くときに、いくつかのバイトが欠けているようです。私は "write"関数と "array.tofile"関数でこれを試しました。ここではいくつかのサンプルコードは、次のとおりです。これらのバイトが書き込まれていない理由を私は理解していないバイナリファイルを書き込むときにPythonのバイトがありませんか?
Reading data from: strings.exe
Input File Size: 136592
Document Size: 136592
Output File Size: 135168
Missing Bytes: 1424
:
import zlib, sys, os, array
from struct import unpack
from array import array
inputFile = 'strings.exe'
print "Reading data from: ", inputFile
print 'Input File Size:', os.path.getsize(inputFile)
f = open(inputFile, 'rb')
#compressedDocument =
document = f.read()
documentArray = array('c', document)
print 'Document Size:', len(documentArray)
copyFile = open('Copy of ' + inputFile, 'wb')
documentArray.tofile(copyFile)
#copyFile.write(document)
copyFile.close
print 'Output File Size:', os.path.getsize('Copy of ' + inputFile)
print 'Missing Bytes:', os.path.getsize(inputFile) - os.path.getsize('Copy of ' + inputFile)
f.close()
は、次のような出力を提供します。私はさまざまな数の欠落したバイトで複数のファイルでこれを試しました。
ファイル 'strings.exe'の内容を教えてください。私のファイルで問題を再現することはできません – eyquem