Konvertieren Sie eine durch Leerzeichen getrennte Datei in eine kommagetrennte Wertedatei in Python

8

Ich bin sehr neu in Python. Ich weiß, dass dies bereits gefragt wurde, und ich entschuldige mich, aber der Unterschied in dieser neuen Situation ist, dass Leerzeichen zwischen Strings nicht gleich sind. Ich habe eine Datei namens coord , die die folgenden durch Leerzeichen getrennten Strings enthält:

%Vor%

Bitte beachten Sie die Leerzeichen vor dem Beginn jeder Zeichenfolge in der ersten Spalte. Also habe ich folgendes versucht, um es in csv umzuwandeln:

%Vor%

Wenn ich das Skript ausführe, bekomme ich für den coordv im allerersten Teil des Skripts folgendes, was natürlich sehr falsch ist:

%Vor%

Ich habe verschiedene Möglichkeiten in .replace ohne Erfolg ausprobiert, und bis jetzt habe ich keine Quelle von Informationen darüber gefunden, wie ich das machen könnte. Was wäre der beste Weg, um kommagetrennte Werte von dieser coord -Datei zu erhalten? Was mich interessiert, ist, das csv-Modul in Python zu verwenden, um die Spalten 4: 6 auszuwählen und schließlich numpy zu verwenden, um sie wie folgt zu importieren:

%Vor%

Ich wäre sehr froh, wenn mir jemand bei diesem Problem helfen könnte.

    
muammar 03.11.2013, 23:19
quelle

6 Antworten

3

Ersetzen Sie Ihr erstes Bit damit. Es ist nicht sehr schön, aber es wird Ihnen ein CSV-Format geben.

%Vor%

Wenn Sie möchten, dass das Outfile alles in verschiedenen Zeilen enthält, die Sie hinzufügen können outfile.write("\n") am Ende der for-Schleife, aber ich denke nicht, dass Ihr Code, der darauf folgt, so damit arbeiten wird.

    
j011y 03.11.2013, 23:30
quelle
11

Sie können csv:

verwenden %Vor%     
the wolf 03.11.2013 23:35
quelle
5

Sie können python pandas verwenden. Ich habe Ihre Daten in data.csv :

geschrieben %Vor%

Das Tolle daran ist, auf das zugrunde liegende numpy Array zuzugreifen, das Sie mit df.values :

verwenden können %Vor%

Um den Datenrahmen mit Kommatrennzeichen zu speichern:

%Vor%

Pandas ist eine großartige Bibliothek für die Verwaltung großer Datenmengen, als Bonus funktioniert es gut mit numpy. Es besteht auch eine sehr gute Chance, dass dies viel schneller ist, als mit dem Modul csv .

    
Daniel 03.11.2013 23:41
quelle
1
%Vor%     
user1667218 04.11.2013 00:01
quelle
0

Warum nicht zeilenweise eine Datei lesen? Teilen Sie eine Zeile in eine Liste auf und schließen Sie sie erneut mit ',' an.

    
user1667218 03.11.2013 23:51
quelle
0

Das csv-Modul ist gut, oder hier ist ein Weg, es ohne zu tun:

%Vor%     
dstromberg 04.11.2013 00:41
quelle

Tags und Links