1375 Stimmen

Wie liest man eine Textdatei in eine Zeichenfolgenvariable ein und entfernt Zeilenumbrüche?

Ich habe eine Textdatei, die so aussieht:

ABC
DEF

Wie kann ich die Datei in einen einzelnen Zeichenfolge ohne Zeilenumbrüche einlesen, in diesem Fall eine Zeichenfolge 'ABCDEF' erstellen?


Um die Datei in eine <em>Liste</em> von Zeilen einzulesen, aber das Zeilenendezeichen von jedem Zeile zu entfernen, sehen Sie <a href="https://stackoverflow.com/questions/12330522/how-to-read-a-file-without-newlines">Wie man eine Datei ohne Zeilenumbrüche liest?</a>.

1932voto

sleeplessnerd Punkte 20253

Sie könnten verwenden:

with open('data.txt', 'r') as file:
    data = file.read().replace('\n', '')

Oder wenn der Dateiinhalt garantiert einzeilig ist

with open('data.txt', 'r') as file:
    data = file.read().rstrip()

293voto

Jonathan Sudiaman Punkte 2324

In Python 3.5 oder höher können Sie mit pathlib den Inhalt einer Textdatei in eine Variable kopieren und die Datei schließen in einer Zeile:

from pathlib import Path
txt = Path('data.txt').read_text()

und dann können Sie str.replace verwenden, um die Zeilenumbrüche zu entfernen:

txt = txt.replace('\n', '')

114voto

Nafis Ahmad Punkte 2571

Sie können aus einer Datei in einer Zeile lesen:

str = open('very_Important.txt', 'r').read()

Bitte beachten Sie, dass die Datei nicht explizit geschlossen wird.

CPython wird die Datei beim Beenden als Teil der Garbage Collection schließen.

Aber andere Python-Implementierungen nicht. Um portablen Code zu schreiben, ist es besser, with zu verwenden oder die Datei explizit zu schließen. Kurz ist nicht immer besser. Siehe https://stackoverflow.com/a/7396043/362951

67voto

Pedro Lobito Punkte 84666

Um alle Zeilen zu einem String zusammenzufügen und Zeilenumbrüche zu entfernen, verwende ich normalerweise:

with open('t.txt') as f:
  s = " ".join([l.rstrip("\n") for l in f])

35voto

MagerValp Punkte 2742
mit open("data.txt") as myfile:
    data="".join(line.rstrip() for line in myfile)

join() wird eine Liste von Zeichenfolgen verbinden und rstrip() ohne Argumente wird Leerzeichen, einschließlich Zeilenumbrüchen, am Ende von Zeichenfolgen entfernen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X