pfad = "\\home\\pi"
oder einfacher
pfad = r"\home\pi"
Einen Pfad und einen Dateinamen zusammensetzen
import os
pfad = "\\home\\pi\\Projekte\\Python"
dateiname = "test.txt"
pfadUndDateiname = os.path.join(pfad, dateiname)
Prüfen, ob eine bestimmte Datei existiert und Reaktion darauf, wenn das nicht der Fall ist
Empfohlene Links:
https://www.tutorialspoint.com/python/tk_messagebox.htm
https://docs.python.org/3.9/library/tkinter.messagebox.html
https://docs.python.org/3/library/sys.html
import os
import sys
from tkinter import messagebox
if not os.path.exists(pfadUndDateiname):
messagebox.showerror("Fehler","Die Datei ist nicht vorhanden.")
# gegebenenfalls alles beenden
sys.exit(1)
Datei kopieren
import shutil
shutil.copy(pfadUndDateinameQuelle,pfadUndDateinameZiel)
Datei umbenennen
import os
os.rename(pfadUndDateinameQuelle,pfadUndDateinameZiel)
Datei löschen
Empfohlener Link:
https://www.w3schools.com/python/python_file_remove.asp
import os
os.remove("textdatei.txt")
Eine Datei schreiben
text = "Das ist ein Text"
pfadUndDateiname = r"\home\pi\Projekte\Python\test.txt"
try:
fileObjektTextdatei = None
fileobjektTextdatei = open(pfadUndDateiname, "a", encoding="utf-8")
# a = anhängen
# w = vorhandene Datei wird überschrieben
# mit encoding kann eine bestimmte Kodierung festgelegt werden, hier utf-8
fileobjektTextdatei.write(text + "\n")
except Exception as fehler:
print("Fehler beim Öffnen / Schreiben der Datei\n\n", fehler)
finally:
if fileObjektTextdatei is None:
print("Die gewählte Datei konnte nicht geöffnet werden.")
else:
if not fileObjektTextdatei.closed:
fileObjektTextdatei.close()
Datei lesen
pfadUndDateiname = r"\home\pi\Projekte\Python\test.txt"
try:
fileobjektDateiLesen = open(pfadUndDateiname, "r")
#
weitereZeile = True
while weitereZeile:
zeile = fileobjektDateiLesen.readline()
if zeile == "":
weitereZeile = False
else:
print(zeile)
fileobjektDateiLesen.close()
except Exception as fehler:
print("************\nFehler: \n\n", fehler)
Datei lesen mit besserer Fehlerbehandlung und grafischen Dialog zur Auswahl der zu öffnenden Datei
# Weitere verwendete Quellen
#
# Python GE-PACKT, 8. Auflage, Verlag mitp, von Michael Weigend, ISBN 978-3-7475-0194-8
#
# https://docs.python.org/3/library/dialog.html
# https://docs.python.org/3/library/tkinter.messagebox.html#module-tkinter.messagebox
# https://stackoverflow.com/questions/40843698/how-to-auto-activate-a-tkinter-simpledialog-pop-up-window
# https://www.geeksforgeeks.org/how-to-check-nonetype-in-python/
# https://docs.python.org/3/tutorial/errors.html
# https://docs.python.org/3/library/exceptions.html
from tkinter import filedialog
from tkinter import messagebox
# Die Datei die ausgelesen werden soll wird mit einem entsprechenden grafischen Dialog ausgewählt
pfadUndDateiname = filedialog.askopenfilename(title="Bitte eine Datei wählen")
if len(pfadUndDateiname) == 0:
messagebox.showerror("Programmende","Keine Datei gewaehlt, das Programm wird beendet!")
else:
try:
fileObjekt = None
fileObjekt = open(pfadUndDateiname,"r")
weitereZeile = True
while weitereZeile:
zeile = fileObjekt.readline()
if zeile == "":
weitereZeile = False
else:
# Eingelesene Zeile ausgeben
print(zeile)
# Fehler abfangen
# https://docs.python.org/3/tutorial/errors.html
# https://docs.python.org/3/library/exceptions.html
#
except PermissionError:
messagebox.showerror("Fehler","Der Zugriff auf die Datei wurde verweigert!")
except Exception as fehlermeldung:
messagebox.showerror("Fehler:", fehlermeldung)
finally:
if fileObjekt is None:
messagebox.showinfo("Info", "Die gewählte Datei konnte nicht geöffnet werden.")
else:
if not fileObjekt.closed:
fileObjekt.close()
Einfache grafische Dialoge
Einfache Abfragen mit einem grafischen Dialog - Abfrage von Zahlen und Zeichen (Text)
# Weitere verwendete Quelle:
# https://docs.python.org/3/library/dialog.html#module-tkinter.simpledialog
from tkinter import simpledialog
from tkinter import messagebox
ganzzahl = simpledialog.askinteger("Zahl?","Bitte eine Ganzzahl eingeben:")
if ganzzahl is None:
messagebox.showinfo("Abbruch","Der Eingabedialog wurde abgebrochen.")
else:
messagebox.showinfo("Die Eingabe war:",ganzzahl)
gleitkommazahl = simpledialog.askfloat("Zahl?","Bitte eine Gleitkommazahl eingeben:")
if gleitkommazahl is None:
messagebox.showinfo("Abbruch","Der Eingabedialog wurde abgebrochen.")
else:
messagebox.showinfo("Die Eingabe war:",gleitkommazahl)
zeichenkette = simpledialog.askstring("Text? ABC123...","Bitte eine Zeichenkette eingeben:")
if zeichenkette is None:
messagebox.showinfo("Abbruch","Der Eingabedialog wurde abgebrochen.")
else:
messagebox.showinfo("Die Eingabe war:",zeichenkette)
XML
XML
Empfohlene Links:
https://docs.python.org/3/library/xml.etree.elementtree.html
https://www.delftstack.com/de/howto/python/python-xml-parser/
Stand: 25.12.2024