Wie kann ich Sie entfernen carriage return aus einer text-Datei mit Python?

Die Dinge, die ich gegoogelt habe nicht funktioniert, also hab ich den Dreh Experten!

Habe ich einige text in einem tab-getrennte text-Datei, die irgendeine Art von carriage return (auch wenn ich es öffnen in Notepad++ und verwenden Sie "alle Zeichen", ich sehe [CR][LF] am Ende der Zeile). Ich brauche, um diese zu entfernen carriage return (oder was auch immer es ist), aber ich kann nicht scheinen, um es herauszufinden. Hier ist ein Ausschnitt aus der text-Datei mit einer Zeile, die mit carriage return:

firstcolumn secondcolumn    third   fourth  fifth   sixth       seventh
moreoftheseventh        8th             9th 10th    11th    12th                    13th

Hier ist der code, den ich versuche zu verwenden, um es zu ersetzen, aber es ist nicht der Suche nach die Rückkehr:

with open(infile, "r") as f:
    for line in f:
        if "\n" in line:
            line = line.replace("\n", " ")

Mein Skript einfach nicht finden, den Wagenrücklauf. Mache ich etwas falsch oder machen eine falsche Annahme über das carriage return? Könnte ich einfach entfernen es manuell in einem text-editor, aber es gibt über 5000 Datensätze in der text-Datei enthält, möglicherweise auch dieses Problem.

Weitere Informationen:
Das Ziel ist hier, wählen Sie zwei Spalten der text-Datei so, dass ich split auf \t-Zeichen und beziehen sich auf die Werte, die als Teile eines Arrays. Es funktioniert auf jeder Linie, ohne die Erträge, aber nicht auf den Linien, die mit den Renditen, zum Beispiel weil es kein element 9 in diesen Zeilen.

vals = line.split("\t")
print(vals[0] + " " + vals[9])

So, in der Textzeile oben, dieser code schlägt fehl, da es keinen index 9 im jeweiligen array. Für Zeilen von text, die nicht mit [CR][LF], funktioniert es wie erwartet.

Versuchen Sie eine Suche nach "\r\n" was ist der Wagenrücklauf für windows.
Schreiben Sie die Zeilen wieder in die Datei?
Suche für die \r\n gescheitert.
Nein, brauche ich nicht zu schreiben der Zeilen zurück. Ich muss nur ändern Sie den Wert im Skript, in dem ich Sie nutzen.
warum müssen Sie entfernen Sie die EOL-Zeichen(s)? Sind Sie versuchen, die Datei zu konvertieren zu unix die EOL-style, oder sind Sie nur versuchen zu verbinden, die Daten zusammen? Wenn das ehemalige, sollten Sie nur öffnen mit f = open(filename,"w", newline="\n") und dann schreiben Sie es sofort zurück.

InformationsquelleAutor mrcoulson | 2013-07-15

Schreibe einen Kommentar