Dateien & Ausnahmen



Dateien und verwandte(s)

Im folgenden Beispiel (datei_simpel.py) wird in Python eine Datei zum Lesen geöffnet und danach der Inhalt der Datei angezeigt (mit print):

   pfad = "." # anpassen!!
   dateiname="datei_simpel.py"
   datei = pfad+dateiname
   in_file = open(datei,"r")
   text = in_file.read()
   in_file.close()
   print(text)

Einige Bemerkungen zu diesem Beispiel:


Das Programm im Programm . . .

Eine ungewöhnliche Anwendung ist das Schreiben eines Programmes, im Programm versteht sich. Man nennt das Metaprogrammierung (!). Im folgenden Beispiel (schreib_einfach.py) wird in Python eine Datei zum Schreiben geöffnet, die Folgen sind fatal: gab es zuvor eine Datei gleichen Namens, so ist deren Inhalt danach definitiv WEG!

   programm = 'for i in range(7):\n'
   programm = programm + '    print( "  "*i,"Dieses Programm wurde soeben ins Leben gerufen" )\n'
   pfad = "./" # anpassen!!
   dateiname="blues77.py"
   datei = pfad+dateiname
   out_file = open(datei,"w")
   out_file.write(programm)
   out_file.close()
   print( 'Fertig . . . (schreibe_einfach.py)'  )

Einige Bemerkungen zu diesem Beispiel:


Ausnahmen bestätigen die Regel

Im folgenden Beispiel (ausnahme_bsp.py) wird in Python eine Datei zum Anhängen geöffnet, wobei wir mögliche Fehler mit Hilfe der Ausnahmebehandlung abfangen wollen:

   text = "# blues77.py, erzeugt durch schreibe_einfach.py\n"
   text = text + "# modifiziert durch ausnahme_bsp.py!\n"
   pfad = "./" # anpassen!!
   dateiname="blues77.py"
   datei = pfad+dateiname
   try:
        out_file = open(datei,"a")  # Datei öffnen
   except IOError: # EA-Fehler
        print( 'Konnte Datei ' + datei + 'nicht öffnen!' ) 
   else:
        out_file.write(text) # text in Datei schreiben
        out_file.close()     # Datei schliessen
   print( 'Fertig . . . (ausnahme_bsp.py)' )

Auch zu diesem Beispiel einige Bemerkungen:


Beispiele

findest du unter dem Link "Beispiele":


Aufgaben

  1. Schreibe einen Datei-Betrachter, Abspeichern unter viewer.py. Tipp: Schreibe eine Funktion zum Datei öffnen und lesen. Im Hauptprogramm wird der Dateiname erfragt und einschließlich Pfad an die Funktion üubergeben.
  2. Fasse Öffnen und Schreiben der Datei zu einer Funktion schreibe_Datei zusammen, die Funktion bekommt als Parameter: den vollständigen Dateinamen (inclusive Pfad!) sowie den zu speichernden Text, Beispiel: schreibe_Datei(datei,text). Abspeichern unter "schreiben.py".
  3. Schreibe eine Funktion safety_first zum sicheren Öffnen (Ausnahmebehandlung!) und Anhängen einer Datei. Erster Parameter: Vollständiger Dateiname, zweiter Parameter: der text, der angehängt wird, Beispiel: safety_first(datei,text)

→ sp, 2023-07-26