Wie lese ich Binärdaten in Python?
Bytes
Bytes: Eine Art Zeichenfolge. Durch den Vergleich von dir(str) und dir(bytes) können wir erkennen, dass die Eigenschaften und Methoden der beiden sehr ähnlich sind und nur wenige Unterschiede aufweisen. Daher können Bytes auch verschiedene Operationsmethoden für Bytesequenzen wie Zeichenfolgen haben, z. B. Suchen (Finden), Länge (Len), Schneiden (Split), Slicing usw. Der Vorteil von
bytes ist: Die integrierte Python-Methode erfordert keine Installation zusätzlicher Module von Drittanbietern.
Aber der Nachteil liegt auch auf der Hand: Es kann nur eine einzelne Abfrage abgefragt werden und nicht mehrere erforderliche Ergebnisse gleichzeitig abfragen.
Öffnen Sie zunächst die Datei im RB-Modus und lesen Sie den Inhalt als Bytetyp. Es gibt eine find()-Methode zum Suchen einer bestimmten Zeichenfolge. Diese Methode kann jedoch nur den ersten Zeichenfolgenindex finden, der die Anforderungen erfüllt, und gibt keinen Einzelbit-Index, sondern einen 8-Bit-Einbyte-Index an. Wenn Sie mehrere übereinstimmende Zeichenfolgen finden müssen, gibt es keine integrierte findall()-Methode. Wenn Sie mehrere Abfragen durchführen möchten, ist der Vorgang mühsam. Suchen Sie zunächst den ersten übereinstimmenden Index 1, beginnen Sie mit diesem Index 1, fragen Sie den zweiten übereinstimmenden Index 2 ab und so weiter, bis die Abfrage abgeschlossen ist.
with open(path, 'rb') as f: datas = f.read() start_char = datas.find(b'Start') # start_char2 = datas.find(b'Start', start_char) end_char = datas.find(b'End', start_char) # end_char2 = datas.find(b'End', start_char2) data = datas[start_char:end_char] print(data)
Beachten Sie, dass start_char und end_char im obigen Code mehrmals vorkommen und die Zeiten nicht unbedingt gleich sind. Der Inhalt zwischen den beiden Indizes muss abgerufen werden, er kann jedoch nicht gleichzeitig wiederholt oder überprüft werden. Die kommentierte Codezeile muss mehrmals ausgeführt werden, um den Schlüsselwortindex zu erhalten. Da wir nicht wissen, wie viele Startflags in den Dateidaten enthalten sein werden, wissen wir nicht, wie oft sie ausgeführt werden. Dies sollte durch eine Schleife gelöst werden, aber es scheint keine Variable für die Schleife zu geben. Dadurch wird das Problem komplexer.
Zweitens muss der obige Vorgang zweimal durchgeführt werden, da der Inhalt zwischen den beiden Zeichen erhalten wird. Daher ist der Prozess noch komplizierter.
Daher ist es unbedingt notwendig, neue Methoden zu finden.
bitstring
bitstring ist ein Drittanbieterpaket, das Binärdateien in Form von Bytestreams liest.
Der erste Satz der Datei bitstring.py lautet: Dieses Paket definiert Klassen, die die bitweise Erstellung, Bearbeitung und Interpretation von Daten vereinfachen.
Die Übersetzung lautet wie folgt: Dieses Paket definiert Klassen, die die bitweise Erstellung und Bearbeitung vereinfachen und Interpretation von Daten erklären.
Das einfache Verständnis besteht darin, Daten vom Typ Byte direkt zu verarbeiten.
Es gibt vier Hauptklassen:
Bits – Ein unveränderlicher Container für Binärdaten.
BitArray – Ein veränderlicher Container für Binärdaten.
ConstBitStream – Ein unveränderlicher Container mit Streaming-Methoden.
BitStream – Ein veränderlicher Container mit Streaming-Methoden.
Bits – Ein unveränderlicher Container für Binärdaten.
BitArray – Veränderlicher Container für Binärdaten.
ConstBitStream – Unveränderlicher Container mit Stream-Methoden.
BitStream – Veränderbarer Container mit Stream-Methoden.
Wie bei Bytes lesen Sie zuerst den Dateiinhalt, suchen Sie den Schlüsselwortindex und schneiden Sie ihn in Scheiben, um den Dateninhalt zu erhalten.
# update at 2022/05/06 start # from bistring import ConstBitStream, BitStream from bitstring import ConstBitStream, BitStream # update at 2022/05/06 end hex_datas = ConstBitStream(filename=path) # 读取文件内容 start_char = b'Start' start_chars = hex_datas.findall(start_char, bytealigned=True) # 一次找到全部符合的,返回一个生成器 start_indexs = [] for start_char in start_chars: start_indexs.append(start_char) end_char = b'End' end_indexs = [] for start_index in start_indexs: end_chars = hex_datas.find(end_char, start=start_index, bytealigned=True) # 找到第一个符合的,返回元组 for end_char in end_chars: end_indexs.append(end_char) result = [] for i in range(min(len(start_indexs), len(end_indexs))): hex_data = hex_datas[start_indexs[i]:end_indexs[i]] str_data = BitStream.tobytes(hex_data).decode('utf-8') result.append(str_data)
Code-Analyse, importieren Sie zunächst die beiden erforderlichen Klassen: ConstBitStream, BitStream. Um den Dateiinhalt abzurufen, findet findall() alle passenden String-Indizes und find() den ersten passenden String-Index. Nehmen Sie den kleineren Wert der beiden Listen „Start“ und „Ende“ und erhalten Sie einen Datentyp. Die Methode BitStream.tobytes() konvertiert ihn in einen Byte-Typ, der verstümmelt wird decode() zum Dekodieren und Abrufen der erforderlichen Zeichenfolge.
Der gesamte Prozess ist einfach und kontinuierlich. Im Code werden die Methoden findall(), find() und tobytes() verwendet. Darüber hinaus gibt es viele kleine Details, die beachtet werden müssen. Wenn beispielsweise start_indexs leer ist, sollte nachfolgender Code nicht ausgeführt werden, und das Gleiche gilt für end_indexs, wenn er leer ist.
Es ist ersichtlich, dass das Bitstring-Paket relativ einfach zu verwenden ist. Je nach Bedarf werden relativ wenige Methoden verwendet. Tatsächlich gibt es viele andere Methoden, die je nach Bedarf ausgewählt werden können.
Das obige ist der detaillierte Inhalt vonWie lese ich Binärdaten in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Im VS -Code können Sie das Programm im Terminal in den folgenden Schritten ausführen: Erstellen Sie den Code und öffnen Sie das integrierte Terminal, um sicherzustellen, dass das Codeverzeichnis mit dem Terminal Working -Verzeichnis übereinstimmt. Wählen Sie den Befehl aus, den Befehl ausführen, gemäß der Programmiersprache (z. B. Pythons Python your_file_name.py), um zu überprüfen, ob er erfolgreich ausgeführt wird, und Fehler auflösen. Verwenden Sie den Debugger, um die Debugging -Effizienz zu verbessern.

VS -Code kann zum Schreiben von Python verwendet werden und bietet viele Funktionen, die es zu einem idealen Werkzeug für die Entwicklung von Python -Anwendungen machen. Sie ermöglichen es Benutzern: Installation von Python -Erweiterungen, um Funktionen wie Code -Abschluss, Syntax -Hervorhebung und Debugging zu erhalten. Verwenden Sie den Debugger, um Code Schritt für Schritt zu verfolgen, Fehler zu finden und zu beheben. Integrieren Sie Git für die Versionskontrolle. Verwenden Sie Tools für die Codeformatierung, um die Codekonsistenz aufrechtzuerhalten. Verwenden Sie das Lining -Tool, um potenzielle Probleme im Voraus zu erkennen.

VS -Code -Erweiterungen stellen böswillige Risiken dar, wie das Verstecken von böswilligem Code, das Ausbeutetieren von Schwachstellen und das Masturbieren als legitime Erweiterungen. Zu den Methoden zur Identifizierung böswilliger Erweiterungen gehören: Überprüfung von Verlegern, Lesen von Kommentaren, Überprüfung von Code und Installation mit Vorsicht. Zu den Sicherheitsmaßnahmen gehören auch: Sicherheitsbewusstsein, gute Gewohnheiten, regelmäßige Updates und Antivirensoftware.

VS -Code kann unter Windows 8 ausgeführt werden, aber die Erfahrung ist möglicherweise nicht großartig. Stellen Sie zunächst sicher, dass das System auf den neuesten Patch aktualisiert wurde, und laden Sie dann das VS -Code -Installationspaket herunter, das der Systemarchitektur entspricht und sie wie aufgefordert installiert. Beachten Sie nach der Installation, dass einige Erweiterungen möglicherweise mit Windows 8 nicht kompatibel sind und nach alternativen Erweiterungen suchen oder neuere Windows -Systeme in einer virtuellen Maschine verwenden müssen. Installieren Sie die erforderlichen Erweiterungen, um zu überprüfen, ob sie ordnungsgemäß funktionieren. Obwohl VS -Code unter Windows 8 möglich ist, wird empfohlen, auf ein neueres Windows -System zu upgraden, um eine bessere Entwicklungserfahrung und Sicherheit zu erzielen.

Python zeichnet sich in Automatisierung, Skript und Aufgabenverwaltung aus. 1) Automatisierung: Die Sicherungssicherung wird durch Standardbibliotheken wie OS und Shutil realisiert. 2) Skriptschreiben: Verwenden Sie die PSUTIL -Bibliothek, um die Systemressourcen zu überwachen. 3) Aufgabenverwaltung: Verwenden Sie die Zeitplanbibliothek, um Aufgaben zu planen. Die Benutzerfreundlichkeit von Python und die Unterstützung der reichhaltigen Bibliothek machen es zum bevorzugten Werkzeug in diesen Bereichen.

VS Code ist der vollständige Name Visual Studio Code, der eine kostenlose und open-Source-plattformübergreifende Code-Editor und Entwicklungsumgebung von Microsoft ist. Es unterstützt eine breite Palette von Programmiersprachen und bietet Syntax -Hervorhebung, automatische Codebettel, Code -Snippets und intelligente Eingabeaufforderungen zur Verbesserung der Entwicklungseffizienz. Durch ein reiches Erweiterungs -Ökosystem können Benutzer bestimmte Bedürfnisse und Sprachen wie Debugger, Code -Formatierungs -Tools und Git -Integrationen erweitern. VS -Code enthält auch einen intuitiven Debugger, mit dem Fehler in Ihrem Code schnell gefunden und behoben werden können.
