gpt4 book ai didi

python unhexlify 未按预期工作

转载 作者:行者123 更新时间:2023-11-30 23:28:40 25 4
gpt4 key购买 nike

每当程序打开文件时,它都会将该文件视为二进制数据。它将其转换为更高级的解释语言,即八进制、十六进制、ascii 等。在这种情况下,它在左侧 Pane 中显示十六进制,在右侧 Pane 中显示 ansi(Windows 7,因此应该是 CP1252)。下面的三张图片展示了原始 View ,然后是所需的更改,第三张是代码所做的实际更改:

enter image description here

enter image description here

enter image description here

with open(tar,'rb') as f:
data = binascii.hexlify(f.read(160))
if old in data:
print 'found!'
data = data.replace(old, new)
else:
print 'not found'
with open(tar+'new', 'wb') as fo:
binascii.unhexlify(data)
fo.write(data)

我显然没有正确定位写入传递方法。

最佳答案

提示:这两行有什么区别:

data = binascii.hexlify(f.read(160))

binascii.unhexlify(data)

在Python中,字符串对象是不可变的。您无法调用 data 来导致 data 命名的字符串发生更改,因为字符串不会更改。 binascii.unhexlify 相反返回一个new 字符串 - 这就是为什么第一个语句甚至首先起作用。如果您想.write生成的新字符串,那么您应该指定在代码中发生的事情 - 直接:

fo.write(binascii.unhexlify(data))

或者首先将其分配回data

关于python unhexlify 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21522332/

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