决定彻底重拍这个问题。 Hexedit的默认设置在中心窗口中显示十六进制,在右侧窗口中显示ansi文本。以下是当前代码:
patlst = [line.strip() for line in open(patch,'rb',1)] #Read Patch start
if alphex == 'h' :
old = patlst[patlst.index('OLD:')+1] #get old data str
new = patlst[patlst.index('NEW:')+1] #get new data str
old = old.lower();old = ''.join(old.split())
new = new.lower();new = ''.join(new.split())
pircwd = os.chdir('..'); pircwd = os.getcwd() ##DIR change
with open(tar, 'rb') as f:
data = binascii.hexlify(f.read(160))
with open(tar+'BAK', 'wb') as f:
f.write(data.replace(b'old',b'new'))
原始的hexedit视图未经更改:
期望的结果:
实际结果:
我认为这需要打包和解包功能才能正常工作?或者有更好的方法来做到这一点吗?
答案 0 :(得分:1)
要从(ASCII编码)十六进制转换为二进制,您可以使用binascii.unhexlify()
。
答案 1 :(得分:0)
确定丢失了我的所有登录信息。注册的电子邮件帐户已经死了。 Parks Banyon是加里华盛顿的秘密身份。我将在另一个上下文中重新发布这个问题,标题为“python打印数据以python格式看到stout。IE raw。
答案 2 :(得分:0)
基本上这个特殊的问题是关注3个问题,希望是一个解决方案。显然事实并非如此。因此,我将以下stackoverflow问题作为部分答案(为什么Python在默认编码为ASCII时打印unicode字符?)并将Dan Getz的回复投票为可行的解决方案。我将这些问题作为3个问题重新发布,并希望答案不会发生冲突。