Pytho Sie grundlegende Programmierung: eine Methode der Datenformat-Umwandlungsmodul in der Python-Struktur

Python ist eine sehr einfache Sprache, der Datentyp Darstellung, im Gegensatz zu vielen anderen Arten von vordefinierten Sprachen (zB: in C #, auf der Licht ganzen Zahl acht definiert), definiert sie nur sechs Grundtypen: string, integer, Gleitkommazahlen, Tupeln, Listen, Wörterbücher. Durch diese sechs Arten von Daten können wir die meiste Arbeit tun. Aber Python Notwendigkeit, Zeit ein Netzwerk mit anderen Plattformen zu interagieren über, muss sie berücksichtigt die Art zwischen diesen Datentypen mit anderen Plattformen oder Sprachen gegenseitige Umwandlung Fragen. Analog: C ++ Der Client sendet ein Datentyp int (4 Byte) an den Server-Variablen in Python geschrieben zu schreiben, Python erhält 4-Byte-Ganzzahlen zur Darstellung dieser Daten, wie es Python parsen integer wissen? Pythons Standard-Modul-Struktur wird verwendet, um dieses Problem zu lösen.

struct vielen Modulinhalt, nicht zu schwierig, die am häufigsten verwendeten Verfahren sind nachstehend beschrieben , wobei:
struct.pack

struct.pack Python Werte für Zeichen basiertes Format, umgewandelt in eine Zeichenfolge (Python weil kein Byte (Byte) Typ, wobei die Zeichenfolge als ein Bytestrom oder Byte-Array verstanden werden). Welche ein Funktionsprototyp ist: struct.pack (fmt, v1, v2, ...), ist der Parameter-String-Format fmt. v1, v2, ... repräsentiert Python-Wert konvertiert werden. Das folgende Beispiel wandelt die zwei ganzen Zahlen in Strings (Byte-Stream):

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'

Anforderung "i" convert int repräsentiert, 'ii' für zwei Variablen int. Ergebnisse Länge nach der Konvertierung ist 8 Byte (4 Byte Typ int, int zwei 8 Byte), können Sie das Ausgabeergebnis zu sehen ist verstümmelt, da das Ergebnis von Binärdaten ist, wird verstümmelt. Eingebaute Funktionen verwendet werden kann repr Python erkennbare Zeichenfolge zu erlangen, wobei die hexadezimalen 0 × 00000014, 0 × 00.001.009, jeweils 20 und 400.
struct.unpack

struct.unpack die Arbeit fällt mit der struct.pack dagegen für den Datentyp in einen Bytestrom Python. Es ist die Funktion Prototyp: struct.unpack (fmt, string), die Funktion eines Tupels zurück. Im Folgenden ist ein einfaches Beispiel:

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

struct.calcsize Länge für die berechneten Ergebnisse auf die Formatzeichenkette entsprechen, wie zum Beispiel: struct.calcsize ( ‚II‘), kehrt 8. Da die beiden Arten von besetzten int Länge beträgt 8 Byte.
struct.pack_into, struct.unpack_from

Diese beiden Funktionen wurden in Python Handbuch eingeführt, aber keine Beispiele gegeben, wie zu verwenden. In der Tat sind sie nicht viel in der Praxis eingesetzt. Google für eine lange Zeit, um ein Beispiel zu finden, geschrieben über das Teilen:

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)

Über den Format-String

In Python Handbuch, angesichts der Art , die üblicherweise in der Sprache C verwendet mit Python - Format auf die Art des Zeichens entspricht: Hier hat Bild einfügen Beschreibung
das letzte Wort des Mundes eine gute Python Versammlung empfehlen [ click to enter ], es gibt eine Menge von Oldtimern Lernfähigkeiten ist, Erfahrungen zu lernen, Interview Fähigkeiten, Erfahrungen und anderer Arbeitsplatz teilen, desto mehr werden wir die Null-basierten Einführungsinformationen, Informationen zu aktuellen Projekten sorgfältig vorbereitet, hat das Timing die Python - Programmierer Technologie jeden Tag zu erklären, einige Lernmethoden und die Notwendigkeit, achten Sie auf kleine Details teilen

Veröffentlicht 50 Originalarbeiten · erntete Lob 34 · Ansichten 70000 +

Ich denke du magst

Origin blog.csdn.net/haoxun08/article/details/104909335
Empfohlen
Rangfolge