Pitón que la programación básica: un método de módulo de conversión de formato de datos en la estructura de Python

Python es un lenguaje muy simple, la representación de tipo de datos, a diferencia de muchos otros tipos de idiomas predefinidos (por ejemplo: en C #, en el número entero de luz define ocho), sólo se define seis tipos básicos: cadena, números enteros, de punto flotante, tuplas, listas, diccionarios. Por estos seis tipos de datos, podemos hacer la mayor parte de la obra. Pero Python tiempo para interactuar a través de una red con otras plataformas de necesidad, se debe tener en cuenta el tipo entre estos tipos de datos con otras plataformas o lenguajes de problemas de conversión mutua. Analogía: C ++ para escribir el cliente envía (4 bytes) variables de un tipo de datos int al servidor escrito en Python, Python recibe enteros de 4 bytes para representar estos datos, cómo analizar Python número entero conocerá? struct módulo estándar de Python se puede utilizar para resolver este problema.

struct contenido del módulo, no demasiado difícil, los siguientes métodos más comúnmente utilizados se describen en la que:
struct.pack

valores struct.pack Python para formato basado carácter, convertidos a una cadena (Python porque ningún tipo byte (byte), donde la cadena puede ser entendido como una secuencia de bytes, o matriz de bytes). Que es un prototipo de función: struct.pack (FMT, v1, v2, ...), el formato de cadena de parámetros es FMT. v1, v2, ... representan el valor de pitón a convertir. El ejemplo siguiente convierte los dos números enteros a cadenas (flujo de bytes):

import struct
  
a = 20
b = 400
  
str = struct.pack("ii", a, b) 
#转换后的str虽然是字符串类型,但相当于其他语言中的字节流(字节数组),可以在网络上传输
print 'length:', len(str)
print str
print repr(str)
  
#---- result
#length: 8
#  ----这里是乱码
#'/x14/x00/x00/x00/x90/x01/x00/x00'

Especificador "i" representa int convertido, 'ii' representa dos variables int. Resultados longitud después de la conversión es de 8 bytes (4 bytes tipo int, int dos 8 bytes), se puede ver el resultado de salida es ilegible, ya que el resultado es datos binarios, que es ilegible. Las funciones integradas se puede usar para adquirir repr pitón cadena de caracteres reconocibles, en el que el hexadecimal 0 × 00000014, 0 × 00001009, respectivamente 20 y 400.
struct.unpack

struct.unpack hacer los trabajos coincide con el contraste struct.pack, por flujo de bytes tipo de datos en un pitón. Es el prototipo de función: struct.unpack (FMT, cadena), la función devuelve una tupla. El siguiente es un ejemplo sencillo:

str = struct.pack("ii", 20, 400)
a1, a2 = struct.unpack("ii", str)
print 'a1:', a1
print 'a2:', a2
  
#---- result:
#a1: 20
#a2: 400
struct.calcsize

longitud struct.calcsize para los resultados calculados que corresponden a la cadena de formato, tales como: struct.calcsize ( 'II'), retornos 8. Debido a que los dos tipos de int longitud ocupada es de 8 bytes.
struct.pack_into, struct.unpack_from

Estas dos funciones se ha introducido en el manual de Python, pero no se dan ejemplos de cómo utilizar. De hecho, no se utilizan mucho en la práctica. Google durante mucho tiempo, para encontrar un ejemplo, ha escrito acerca de compartir:

import struct
from ctypes import create_string_buffer
  
buf = create_string_buffer(12)
print repr(buf.raw)
  
struct.pack_into("iii", buf, 0, 1, 2, -1)
print repr(buf.raw)
  
print struct.unpack_from('iii', buf, 0)
  
#---- result
#'/x00/x00/x00/x00/x00/x00/x00/x00/x00/x00/x00/x00'
#'/x01/x00/x00/x00/x02/x00/x00/x00/xff/xff/xff/xff'
#(1, 2, -1)

Acerca de la cadena de formato

En el manual de Python, dado el tipo de uso común en el lenguaje C con formato de Python correspondiente al tipo de personaje: Aquí Insertar imagen Descripción
la última palabra de la boca para recomendar una reunión buena pitón [ Haga clic para entrar ], hay una gran cantidad de veteranos habilidades de aprendizaje, la experiencia de aprendizaje, entrevista habilidades, experiencia y otra cuota de trabajo, más nos prepararon cuidadosamente la información introductoria de base cero, información sobre proyectos reales, el tiempo tiene que explicar la tecnología programador Python todos los días, compartir algunos métodos de aprendizaje y la necesidad de prestar atención a los pequeños detalles

Publicado 50 artículos originales · ganado elogios 34 · Vistas a 70000 +

Supongo que te gusta

Origin blog.csdn.net/haoxun08/article/details/104909335
Recomendado
Clasificación