【发布时间】:2014-10-22 14:29:11
【问题描述】:
我想在文件中以十六进制形式打开大约 135 个不同的偏移量。感兴趣的部分是游戏中角色皮肤的名称,因此编辑这些并保存它们的简单方法可以为我节省大量时间。
这是我最终得到的代码,我可以理解。我将文件转换为 HEX 和 TEXT 形式:
import binascii
filename = 'Skin1.pack'
with open(filename, 'rb') as f:
content = f.read()
out = binascii.hexlify(content)
f = open('hex.txt', 'wb')
f.write(out)
f.close()
import binascii
filename = 'hex.txt'
with open(filename, 'rb') as f:
content = f.read()
asci = binascii.unhexlify(content)
w = open('printed-hex.txt', 'wb')
w.write(asci)
w.close()
现在我试图用这个字节来替换文件中的一些文本
f = open("printed-hex.txt",'r')
filedata = f.read()
f.close()
newdata = filedata.replace("K n i g h t ",input)
f = open("printed-hex.txt",'w')
f.write(newdata)
f.close()
但我遇到了这个错误,
Traceback (most recent call last):
File "C:\Users\Dee\Desktop\ARC to HEX\Edit-Printed-HEX.py", line 3, in <module>
filedata = f.read()
File "C:\Python34\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 2656: character maps to <undefined>
【问题讨论】:
-
1) 你坚持在外部编辑器中打开片段还是像代码中显示的那样从 python 的控制台进行编辑可以吗? 2)你如何找到感兴趣的片段?即,这可以自动化吗?
-
1) 我对使用 python 进行 HEX 编辑一无所知。 2)我不坚持以任何方式打开任何东西,我只是想弄清楚如何做我所说的。
-
“所以,我们的想法是在文件中以十六进制形式打开大约 45 个不同的位置。对于每个选择,我想在十六进制编辑器中编辑 1 到 3 行之间的任何位置。(女巫我假设是我所指的行的片段)“
-
投反对票可能是因为你问了一个关于用一种语言编程的问题,甚至没有费心去学习它的基础知识。本站不是教程合集,是问答。
-
我不在乎你的侮辱@chthonicdaemon,我得到了我需要的帮助。他非常乐意帮助我理解我想问的问题。
标签: python