Seite 1 von 1

Sonderzeichen

Verfasst: Dienstag 20. September 2022, 22:14
von Feedback1000
Hallo.

Da ich gerade mit Python starte, stehe ich schon am Anfang vor Problemen, die ich nicht erklimmen kann. Ich hoffe auf eure Hilfe.

Mit

Code: Alles auswählen

file_messdatei = "Testdatei.txt"
path_datei = "C:\\ABC\\XYZ"

datei = open(path_datei + "/" + file_datei, "r")
print(datei.read())
datei.close()
gebe ich den Inhalt einer Textdatei aus. Allerdings gibt es augenscheinlich ein Problem mit den Sonderzeichen (ÄÖÜ äöü oder auch !"§$%&/()=?`ß²³µ~*+#'><|_-.:,;,), die teilweise falsch dargestellt werden.
Die Textdatei selbst ist utf-8 codiert.

Könnt ihr mir sagen, was das Problem ist?

Mit Dank und vielen Grüßen
Feedback

Re: Sonderzeichen

Verfasst: Mittwoch 21. September 2022, 09:38
von Sirius3
Beim Öffnen einer Textdatei muß man immer das richtige Encoding angeben.
Dateien öffnet man innerhalb des with-Statements. Statt Pfade mit + zusammenzustückeln benutzt man pathlib.Path.

Code: Alles auswählen

from pathlib import Path
PATH_TO_FILE = Path("C:/ABC/XYZ")
FILENAME_MEASUREMENT = "Testdatei.txt"

def main():
    with (PATH_TO_FILE / FILENAME_MEASUREMENT).open("r", encoding="utf-8") as file:
        print(file.read())
        
if __name__ == "__main__":
    main()

Re: Sonderzeichen

Verfasst: Mittwoch 21. September 2022, 11:08
von __blackjack__
Wobei man den speziellen Fall die gesamte Datei einzulesen noch abkürzen kann, weil `Path` dafür eine eigene Methode besitzt:

Code: Alles auswählen

from pathlib import Path

PATH_TO_FILE = Path("C:/ABC/XYZ")
FILENAME_MEASUREMENT = "Testdatei.txt"


def main():
    print((PATH_TO_FILE / FILENAME_MEASUREMENT).read_text(encoding="utf-8"))


if __name__ == "__main__":
    main()