天天看點

python将字元串寫入txt檔案,Python将位元組字元串寫入檔案

python将字元串寫入txt檔案,Python将位元組字元串寫入檔案

How do I write a string of bytes to a file, in byte mode, using python?

I have:

['0x28', '0x0', '0x0', '0x0']

How do I write 0x28, 0x0, 0x0, 0x0 to a file? I don't know how to transform this string to a valid byte and write it.

解決方案

Map to a bytearray() or bytes() object, then write that to the file:

with open(outputfilename, 'wb') as output:

output.write(bytearray(int(i, 16) for i in yoursequence))

Another option is to use the binascii.unhexlify() function to turn your hex strings into a bytes value:

from binascii import unhexlify

with open(outputfilename, 'wb') as output:

output.write(unhexlify(''.join(format(i[2:], '>02s') for i in b)))

Here we have to chop off the 0x part first, then reformat the value to pad it with zeros and join the whole into one string.