Python 如何读取文件的确切字节?
我不确定应该如何修改代码,使输出的总字节数与输入文件中的总字节数完全相同。 根据我的代码,输出是1024的倍数,这是缓冲区的初始大小。 我该怎么做才能使它输出最后一个块中的相关字节,而不是整个缓冲区块?我应该创建一个条件来处理最后一个块吗 选项1:只将readinto操作返回的字节数写回文件Python 如何读取文件的确切字节?,python,python-3.x,Python,Python 3.x,我不确定应该如何修改代码,使输出的总字节数与输入文件中的总字节数完全相同。 根据我的代码,输出是1024的倍数,这是缓冲区的初始大小。 我该怎么做才能使它输出最后一个块中的相关字节,而不是整个缓冲区块?我应该创建一个条件来处理最后一个块吗 选项1:只将readinto操作返回的字节数写回文件 import sys def XoR(filename, operand): byte = bytearray(1024) with open(filename, "rb") as
import sys
def XoR(filename, operand):
byte = bytearray(1024)
with open(filename, "rb") as file:
reAd = file.readinto(byte)
while True:
reAd = file.readinto(byte)
for i in range(reAd):
byte[i] ^= operand
sys.stdout.buffer.write(byte)
def main():
return XoR(sys.argv[1], int(sys.argv[2]))
if __name__ == '__main__':
main()
选项2:不要使用readinto
sys.stdout.buffer.write(byte[:reAd])
def XoR(filename, operand):
with open(filename, "rb") as file:
while True:
chunk = file.read(1024)
if not chunk:
break
chunk = bytes(byte ^ operand for byte in chunk)
sys.stdout.buffer.write(chunk)