Ravs
Ravs

Reputation: 261

How to write n bytes to a binary file in python 2.7

I am trying to use f.write(struct.pack()) to write n bytes to a binary file but not quite sure how to do that? Any example or sample would be helpful.

Upvotes: 1

Views: 887

Answers (2)

Ravs
Ravs

Reputation: 261

The below worked for me:

reserved = "Reserved_48_Bytes"
f.write(struct.pack("48s", reserved))

Output:

hexdump -C output.bin

00000030  52 65 73 65 72 76 65 64  5f 34 38 5f 42 79 74 65  |Reserved_48_Byte|    
00000040  73 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |s...............|    
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

Upvotes: 0

gelonida
gelonida

Reputation: 5640

You don't really explain your exact problem or what you tried and which error messages you encountered:

The solution should look something like:

with open("filename", "wb") as fout:
    fout.write(struct.pack(format, data, ...))

If you explain what data exactly you want to dump, then I can elaborate on the solution

If your data is just a hex string, then you do not need struct, you just use decode. Please refer to SO question hexadecimal string to byte array in python

example for python 2.7:

hex_str =  "414243444500ff"
bytestring = hex_str.decode("hex")
with open("filename", "wb") as fout:
    fout.write(bytestring)

Upvotes: 1

Related Questions