Die Webseiten der Fachschaft Informatik am ERG Saalfeld


Textdatei einlesen und Zeilen nummerieren

Es soll hier mit diesem Programm das prinzipielle Vorgehen bei der Arbeit mit Dateien gezeigt werden.

Es soll eine Textdatei eingelesen werden, vor jede Zeile die Zeilennummer gesetzt werden und dann diese nummerierten Zeilen wieder ausgegeben werden.
 

Programm

datei = __file__

# Textdatei einlesen
handle = open(datei, "r")             # Datei oeffnen im Lesemodus
inhalt = handle.readlines()           # Text ist zeilenweise in der Liste "inhalt"
handle.close()                             # Datei schliessen

nummer = 1
for line in inhalt:
  print (nummer,": ",line.rstrip())   # rstrip() entfernt am Ende '\r', '\n' bzw. ' '
  nummer = nummer + 1

 

Der Aufruf sah bei mir so aus:

 

Aufgaben

  1. Bringen Sie das Programm zum Laufen.
  2. Leiten Sie die Ausgabe des Programms in eine Datei 'ausgabe.txt' um.
  3. Zeichnen Sie zu diesem Programm ein Struktogramm
  4. Lassen Sie die Variable "datei" ausgeben. z.B. so:
    datei = __file__
    print(datei)
    
    Sie können das gleich in unserem Beispiel entsprechend ergänzen oder als extra Datei durchführen.
  5. Verwenden Sie statt der Variablen __file__ den Namen der Datei.
  6. Provozieren Sie eine Fehlermeldung, indem Sie den Dateinamen bewußt falsch schreiben.
  7. Informieren Sie sich über die Spezialvariable __file__.
  8. In der Zeile   handle = open(datei, "r") ... (im Screenshot die Zeile mit der Nummer 4) ist "handle" ein sogenanntes Dateihandle.
    Lassen Sie sich dieses Dateihandle ausgeben, z.B. so:
    datei = __file__
    
    # Textdatei einlesen
    handle = open(datei, "r")
    print(handle)
    ...
    
  9. Ergänzen Sie das Programm so, dass am Ende auch die Anzahl der Zeilen ausgegeben werden.

 

zurück


© ERG Saalfeld   -   HD. Kirmse + Dustin Wiese     letztes Update 9.08.2022