Python konvertieren multiline zu single line

Ich möchte Python Multiline String zu einer einzigen Zeile zu konvertieren. Wenn ich die Saite in einem Vim öffne, kann ich am Anfang jeder Zeile ^ M sehen. Wie verarbeite ich die Zeichenfolge, um alles in einer einzigen Zeile mit Tabtrennung zwischen jeder Zeile zu machen. Beispiel in Vim sieht es wie aus:

Serialnumber ^MName Rick ^MAddress 902, A.street, Elsewhere 

Ich möchte, dass es so etwas wie:

  • "WindowsError: [Fehler 5] Zugriff wird verweigert" mit urllib2
  • Schleife durch alle CSV-Dateien in einem Ordner
  • Python win32api.LoadKeyboardLayout (), ändert nicht die Sprache in IDLE-Shell?
  • Python-Variablenumfang
  • Ausführen von Tests von coverage.py vs laufende Abdeckung von Test-Läufer
  • Textdatei Erstellung Problem, wo neue Zeilen erstellt, wenn nicht wirklich EOL
  •  Serialnumber \t Name \t Rick \t Address \t 902, A.street,...... 

    Wo jeder String in einer Zeile ist. Ich habe es versucht

      somestring.replace(r'\r','\t') 

    Aber es funktioniert nicht. Auch wenn der String in einer einzigen Zeile ist, wenn ich eine newline (UNIX newline?) Am Ende des Strings wollte, wie würde ich das machen?

  • Ein Python-Skript mit Cron ausführen?
  • Wie extrahieren Sie mehrere E-Mail-Adressen aus einem RFC 2822 Mail-Header in Python?
  • Date_range nicht akzeptieren die Variable Ich möchte verwenden?
  • Django Swagger Integration
  • Plot / Konvertieren Sie einen Ausdruck aus Sympy: Taylor Serie mit Matplotlib
  • Warum ist meine Liste .append () den Wert jeder Mitgliedsvariablen auf die neue Variable ändern?
  • 3 Solutions collect form web for “Python konvertieren multiline zu single line”

    Gelöscht meine vorherige Antwort, weil ich erkannte, dass es falsch war und ich musste diese Lösung testen.

    Angenommen, dass Sie dies aus der Datei lesen, können Sie Folgendes tun:

     f = open('test.txt', 'r') lines = f.readlines() mystr = '\t'.join([line.strip() for line in lines]) 

    Wie ep0 gesagt hat, steht das ^ M für '\ r', welches der Wagen Zeichen in Windows zurückgibt. Es ist überraschend, dass du ^ M am Anfang jeder Zeile hättest, da das Windows-Newline-Zeichen \ r \ n ist. Mit ^ M am Anfang der Zeile zeigt an, dass Ihre Datei \ n \ r stattdessen enthält.

    Unabhängig davon nutzt der obige Code ein Listenverständnis, um jede der Zeilen, die von test.txt gelesen wurden, zu test.txt . Für jede line in lines nennen wir str.strip() , um alle Leerzeichen und nicht druckenden Zeichen aus dem ENDS jeder Zeile zu entfernen. Schließlich nennen wir '\t'.join() auf der resultierenden Liste, um Tabs einzufügen.

    Sie können "\ r" Zeichen durch "\ t" ersetzen.

     my_string.replace("\r", "\t") 

    Dies geschieht, wie VIM interpretiert CR (Wagenrücklauf), von Windows verwendet, um neue Linien zu begrenzen. Du solltest nur einen Editor benutzen (ich persönlich bevorzuge VIM). Lesen Sie dies: VIM ^ M

    Python ist die beste Programmiersprache der Welt.