使用十六进制值覆盖文件中的位

2024-05-20 19:35:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个十六进制表示的值“c”:0x515d6e39。这意味着bites看起来是这样的:515d6e39。我的任务是转到已经存在的文件,打开它并用上面提到的bites替换位置(例如)38th-41st的bites

我试图以“rb”模式打开文件。然后我用seek函数去寻找想要的位置。然后使用值为“c”的write函数,但它不起作用。有人能帮我解决这个问题吗

我附上我的代码:

import binascii


def main():
    a=963534161
    b=bytearray.fromhex(format(a, 'x'))
    b.reverse() ## I wanted to reverse my bites
    c=hex(int(binascii.hexlify(b),16))
    print c

    file=r'D:\Programs\WinKalk\winkalk.7zip' ## path to any file
    f=open(file, 'wb')
    f.seek(38) ## for example position 38th
    f.write(c)
    f.close()



if __name__ == '__main__':
    main()

错误:“str”不支持缓冲区接口


Tags: 文件to函数代码importbitesmaindef