gpt4 book ai didi

python - 每 820 字节保存到新文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:51:22 25 4
gpt4 key购买 nike

我有一个文件(大小:20 mb | 二进制文件)需要每 820 字节解析一次,并将 820 的内容保存到一个新文件中,文件名是 2byte 之间的字符串(ASCII)和 16 字节标记。

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
^ THE FILENAME COMES FROM HERE ^

好的,既然挑战已经解释清楚(我希望如此),我现在所拥有的是:

#!/usr/bin/python

with open("file", "rb") as f:
byte = f.read()
if byte > 820:
print "Reach the 1 record mark on the File you have defined "

但我也可以在这里看到一种可能性:

for f.read(820) in file:
a = f.read()
b = open("Iam_from_2_to_16_byte_string", w)
b.write(a)
b.close

嗯,我不知道的是如何迭代前 820 个字节,然后是下一个 820 个字节,然后是下一个,直到文件末尾,而每次我处理新文件时最难的部分是 2 到16 字节缓冲区,并将其用作我拥有的 820 字节的每个新文件中的文件名。

最佳答案

iter() function可以传递一个函数和一个哨兵,用它来读取 820 字节 block 中的文件:

for chunk in iter(lambda: f.read(820), ''):
# chunk is now 820 bytes long, until the last chunk which *could* be shorter.

每次迭代,lambda 函数都会被调用,读取 820 个字节,直到 f.read(820) 返回一个空字符串(表示 EOF)。

block 只是一个字符串,所以你可以使用切片来获取你的文件名:

filename = chunk[2:16]

一起使用:

with open("file", "rb") as f:
for chunk in iter(lambda: f.read(820), ''):
open(chunk[2:16], 'wb').write(chunk)

关于python - 每 820 字节保存到新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13643963/

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