Ich habe einen Raum getrennt Datei (file1.csv
), auf dem I 3 UNIX Operationen manuell durchführen, nämlich:tun grundlegende Operationen UNIX Pythonic Weise
Schritt1. Entfernen Sie alle doppelten Anführungszeichen (") aus jeder Zeile.
sed 's/"//g' file1.csv > file_tmp1.csv
schritt2. alle weißen Leerzeichen am Anfang jeder Zeile zu entfernen.
sed 's/^ *//' file_tmp1.csv > file_tmp2.csv
step3. Alle zusätzlichen weißen Zwischenräume Texten jedes Entfernen Linie.
cat file_tmp2.csv | tr -s " " > file1_processed.csv
wollte also wissen, ich, wenn es ohne viel von einer Rechenzeit in einer Pythonic Weise dies und das zu einem besseren Ansatz ist. diese drei Schritte dauern ca. ~ 5 min (max), wenn tun ne mit UNIX-Befehlen.
Bitte beachten Sie die Datei file1.csv
ist eine durch Leerzeichen getrennte Datei und ich möchte es durch Leerzeichen getrennt bleiben.
Auch wenn Ihre Lösung schlägt gesamte file1.csv
in den Speicher geladen, dann würde ich Sie bitten, einen Weg zu empfehlen, wo diese in Stücke getan wird, weil die Datei viel zu groß ist (~ 20 GB oder so) jedes Mal in den Speicher zu laden.
danke im voraus.
Ich bezweifle, dass Sie sogar die Leistung von UNIX-Tools erreichen können. Beachten Sie, dass diese Tools in C geschrieben und für die Leistung optimiert sind. – hek2mgl
Müssen Sie es in Python tun, oder dachten Sie einfach, dass Python schneller wäre? – user1767754
Vielleicht Rohrleitungen, zumindest die Befehle? So, dass keine Zwischendatei erzeugt wird und ein Singe-Pass eine bestimmte Datei transformiert? –