wie kann ich in python ganze zeilen einlesen?

3 Antworten

with open() as f:
   f.read(<num>) #chars
   f.readline()  #line 
   f.readlines() #all lines

readline() und readlines() sind als Methoden natürlich nur bei Textdateien sinnbehaftet.

Alternativ ist f auch iterable, d.h. ein Konstrukt wie:

with open() as f:
   for line in f:

ist auch möglich.

Uffly007 
Fragesteller
 22.12.2022, 20:21

Damit kann ich also auch von der Konsole (nicht als Kommandozeilenparameter, sondern interaktiv also nach Start des Programms) lesen bis ein String z.b „Stop“ kommt?

0
KarlRanseierIII  22.12.2022, 21:04
@Uffly007

Python bietet der Einfachheit halber input() an, Du darfst aber natürlich auch ein

import sys

sys.stdin.readline()

machen, sys.stdin verhält sich dabei wie jedes andere Python file object.

Es gibt für entsprechende Szenarien noch fileinput (Modul), das ein Helper/Wrapper ist.

1

Mit

with open("Datei.txt") as f:
   lines = f.readlines()

Erhälst du eine Liste, die jede Zeile von der Datei als String enthält. Jedoch endet jede Zeile mit newline, das kannst du aber leicht beheben (damit werden sogar alle Whitepages die zu Beginn und am Ende des Strings sind, entfernt):

with open("Datei.txt") as f:
   lines = [l.strip() for l in f.readlines()]

Hallo,

mein Wissen in Python ist auch sehr begrenzt aber wenn ich mich richtig erinnere, ist das Einlesen von Zeilen mit "input()" und "readlines()" möglich.

Hier ein Beispiel für "input()":

line = input()

print(line)

Und hier ein Bsp. für "readlines()":

with open("Datei.txt") as f:

lines = f.readlines()

print(lines)

Wie du sicherlich erkennst ist "readlines()" dafür gedacht, etwas aus einer Datei zu verarbeiten.

Ich hoffe ich konnte dir weiterhelfen. :)