Home > Article > Backend Development > Detailed explanation of Python's method of using struct to process binary data
This article mainly introduces relevant information about Python's use of struct to process binary examples. I hope that everyone can master this part of the content through this article. Friends in need can refer to it
Python uses struct to process Detailed explanation of binary examples
Sometimes you need to use python to process binary data, for example, when accessing files and socket operations. At this time, you can use python's struct module to complete it. You can use struct to process it. Structure in c language.
The three most important functions in the struct module are pack(), unpack(), calcsize()
pack(fmt, v1, v2, ...) Pack the data into a string according to the given format (fmt) (actually a byte stream similar to a c structure)
unpack(fmt, string) Parses the byte stream string according to the given format (fmt) and returns the parsed tuple
calcsize(fmt) Calculation How many bytes of memory does a given format (fmt) occupy?
The supported formats in struct are as follows:
Format | C Type | Python | Number of bytes |
---|---|---|---|
x | pad byte | no value | 1 |
c | char | string of length 1 | 1 |
b | signed char | integer | 1 |
B | unsigned char | integer | 1 |
? | _Bool | bool | 1 |
h | short | integer | 2 |
H | unsigned short | integer | 2 |
i | int | integer | 4 |
I | unsigned int | integer or long | 4 |
l | long | integer | 4 |
L | unsigned long | long | 4 |
q | long long | long | 8 |
unsigned long long | long | 8 | |
float | float | 4 | |
double | float | 8 | |
char[] | string | 1 | |
char[] | string | 1 | ##P |
long |
Note 4.P Used to convert a pointer, its length is related to the machine word length
Note 5. The last one can be used to represent the pointer type, occupying 4 bytes
In order to be the same as the structure in c When exchanging data, you should also consider that some c or c++ compilers use byte alignment, usually in 32-bit systems with 4 bytes, so the struct is converted according to the local machine byte order. You can use the first character in the format characters to change the alignment. The definition is as follows:
Size and alignment | |||||
---|---|---|---|---|---|
native Make up enough 4 bytes | = | ||||
standard can be based on the original number of bytes | 7c849ecf228f306c811b984665de01f1 | big-endian | standard Based on the original number of bytes | ||
network (= big-endian) | standard Based on the original number of bytes |
The above is the detailed content of Detailed explanation of Python's method of using struct to process binary data. For more information, please follow other related articles on the PHP Chinese website!