Ich versuche, eine CSV-Datei zu komprimieren, ohne Verwendung von 3rd Party oder Framework bereitgestellten Komprimierungsbibliotheken.CSV-Dateikomprimierung ohne Verwendung vorhandener Bibliotheken in Python
Ich habe versucht, was ich denken möchte, alles. Ich schaute auf Huffman, aber da ich diese Lösung nicht verwenden darf, habe ich versucht, meine eigene zu machen.
Ein Beispiel:
6NH8,F,A,0,60541567,60541567,78.78,20
6NH8,F,A,0,60541569,60541569,78.78,25
6AH8,F,B,0,60541765,60541765,90.52,1
QMH8,F,B,0,60437395,60437395,950.5,1
machte ich einen Algorithmus, der jedes Zeichen zählt und gibt mir an, wie oft sie schon verwendet worden, und, je nachdem, wie viel Zeit sie eine Reihe gewidmet.
',' --- 28
'5' --- 18
'6' --- 17
'0' --- 15
'7' --- 10
'8' --- 8
'4' --- 8
'1' --- 8
'9' --- 6
'.' --- 4
'3' --- 4
'\n'--- 4
'H' --- 4
'F' --- 4
'2' --- 3
'A' --- 3
'N' --- 2
'B' --- 2
'M' --- 1
'Q' --- 1
[(',', 0), ('5', 1), ('6', 2), ('0', 3), ('7', 4), ('8', 5),
('4', 6), ('1', 7), ('9', 8), ('.', 9), ('3', 10), ('\n', 11),
('H', 12), ('F', 13), ('2', 14), ('A', 15), ('N', 16), ('B', 17),
('M', 18), ('Q', 19)]
Anstatt also beispielsweise die Speicherung ord ('H') = 72, gebe I H den Wert 12, und so weiter.
Aber wenn ich alle Zeichen auf meine Werte ändere, ist mein generiertes cvs (> 40MB) immer noch größer als das Original (19MB).
Ich versuchte sogar die Alternativen, um die Liste in 2 zu teilen. D. H. Für eine Zeile machen Sie zwei Zeilen.
[6NH8,F,A,0,]
[60541567,60541567,78.78,20]
Aber immer noch größer, sogar größer als meine "Huffman" Version.
FRAGE: jemand irgendwelche Vorschläge haben, wie man 1.Read eine CSV-Datei, das ist 2.use etwas ein lib. oder dritte Partei. 3.generiere und schreibe eine kleinere .csv Datei?
Für Schritt 2 Ich frage nicht nach einer vollständigen berechneten Lösung, nur Vorschläge, wie Sie die Datei minimieren, indem Sie jeden Wert als eine Liste schreiben?
usw.Danke
Warum Sie nicht möchten, vorhandene Bibliotheken benutzen? – MattDMo
die Zuweisungen sagen nicht zu :) –