【发布时间】:2014-11-20 15:08:34
【问题描述】:
我有一个包含以下十六进制值的文件:
00 00 00 00 00 00 00 00
我想要做的实际上是将这个文件加一。即运行程序后,我会留下:
00 00 00 00 00 00 00 01
当我到达:
00 00 00 00 00 00 00 FF
我希望下一个增量留给我:
00 00 00 00 00 00 01 00
有没有一种简单的方法可以用字节数组或类似的东西来做到这一点?
编辑:
这有点像我之前的代码:
filename = 'file'
with open(filename, "rb+") as file:
seek = -1
while True:
file.seek(seek, 2)
value = file.read(1).encode('hex')
file.seek(seek, 2)
if value != 0xFF:
file.write(str(int(value, 16) + 0x1))
break
else:
file.write(str(0x00))
seek -= 1
它给出了……意想不到的结果。
【问题讨论】:
-
是的,有办法做到这一点,到目前为止你有什么尝试?请发布您的代码。
-
@ SO 这里的想法是,您将尝试一些东西,发布该代码并询问我们为什么/如何失败 - 而不是“向我发送 codez”........
-
文件是否包含 8 个字节,值为
0还是包含字符串"00 00 00 00 00 00 00 00"? -
我正在把我的代码放在一起。这是我前一阵子尝试写的东西,最近才想到。
-
Matthias - 正如我原来的问题中提到的,该文件包含十六进制值 00 00 00 00 00 00 00 00