Python-strings und ganzen zahlen in Datei schreiben?
Ich bin neu in Python, also ich bin mir nicht sicher, wie ich sollte dies tun.
Habe ich eine Liste von strings in eine Datei schreiben. Jeder string muss vorangestellt werden, eine 32bit-Ganzzahl, die gleich der Länge der Zeichenfolge.
Brauche ich, um alle Daten, die gehen, um in die Datei geschrieben werden, bevor ich in die Datei schreiben. In C# würde ich alles speichern in einem byte-array vor dem schreiben, aber ich habe keine Ahnung, was zu tun ist in Python. Sollte ich eine Liste, oder gibt es eine bessere Daten-Typ? Wie sollen die Daten gespeichert werden?
edit: ein Beispiel, wie es Aussehen würde, ist:
00 00 00 04 74 65 73 74
den vier Byte einer Ganzzahl im big-endian, gefolgt von dem string.
- Sie benötigen zum speichern der Daten in text-oder binärer form?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Verwendung von lambda-Ausdrücken, um einfach erstellen Sie eine neue Liste nach den Zeichenfolgen und Ihre Anforderungen an die Formatierung gestellt, wie:
Wenn Sie Daten in der Liste namens "data", und Sie möchten, dass Ihre Ausgabe zu gehen, um eine Datei namens " Daten.der folgende code dazu:
ergibt:
als Ausgabe in die Datei 'Daten.out'. Beachten Sie, dass die " 4 " in %4d hilft es, die zahlen mit führenden Leerzeichen so, dass die kommen schön formatiert.
Alternativ, wenn Sie möchten, dass die ASCII-integer-Werte für die Zeichen:
und Sie erhalten
Dieser macht einen großen string mit allen Daten, wie gewünscht:
Dann in die Datei schreiben wie dieses:
Lassen Sie uns sagen, Sie haben eine Liste von strings gespeichert in
list_of_strings
und Sie haben eine Datei zum schreiben geöffnet alsfile_handle
. Gehen Sie etwas wie folgt (ungetestet)Wäre ein Wörterbuch akzeptabel ist. So etwas wie:
Sorry für die Verwirrung, ich hätte, wie ich brauchte, die bytes der integer-und nicht nur die ganze Zahl vor dem string.
Landete ich mit etwas wie:
Speicherung der Daten in einer Liste sollte in Ordnung sein. Die Längen berechnet werden können, wenn Sie das schreiben der Datei. Der schwierige Teil ist, Sie zu schreiben Binär statt ascii.
Arbeiten mit binären Daten, werden Sie wahrscheinlich wollen, verwenden Sie die struct Modul. Es ist die pack-Funktion lassen Sie konvertieren Sie die Länge der Zeichenfolgen, um Ihre binären Darstellungen. Da gibt es einen string zurück, können Sie leicht kombinieren Sie es mit den Zeichenfolgen, die Sie ausgeben möchten.
Beispiel unten schien die Arbeit mit Python 2.7