gpt4 book ai didi

python - 写入二进制文件时 Python 中缺少字节?

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:15 24 4
gpt4 key购买 nike

在用 Python 编写二进制文件时,我似乎丢失了一些字节。我已经用“write”函数和“array.tofile”函数试过了。下面是一些示例代码:

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()

给出以下输出:

Reading data from:  strings.exe
Input File Size: 136592
Document Size: 136592
Output File Size: 135168
Missing Bytes: 1424

我不明白为什么没有写入这些字节。我已经在多个丢失字节数不同的文件上进行了尝试。

最佳答案

在调用 os.path.getsize 之前,您并未关闭输出文件。您写入的 135168 字节是 33 x 4096 字节 block ...尝试 copyFile.close() 而不是 copyFile.close

关于python - 写入二进制文件时 Python 中缺少字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6609168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com