.txt richtig einlesen auf Mac oder Windows?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kiesmo
User
Beiträge: 7
Registriert: Freitag 12. Januar 2018, 21:34

Hallo,

beschaeftige mich im Moment mit Python.
Zurzeit versuche ich eine Normale .txt Datei einzulesen mit folgendem Inhalt:

AnzahlFragen
AnzahlRichtigbeantworteteFragen
Frage;AnzahlAntwort;Antwort;NumrischeFrage;Abweichung;Flag

Ich lese die Datei wie folgt ein:

Code: Alles auswählen

with open("/Users/Maccc/Desktop/Quiz/Questions.txt", encoding='utf-8') as f:
	content = f.readlines()
	print(content)
Als ausgäbe wird mir folgendes Angezeigt:

['{\\rtf1\\ansi\\ansicpg1252\\cocoartf1504\\cocoasubrtf830\n', '{\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;}\n', '{\\colortbl;\\red255\\green255\\blue255;}\n', '{\\*\\expandedcolortbl;;}\n', '\\paperw11900\\paperh16840\\margl1440\\margr1440\\vieww10800\\viewh8400\\viewkind0\n', '\\pard\\tx566\\tx1133\\tx1700\\tx2267\\tx2834\\tx3401\\tx3968\\tx4535\\tx5102\\tx5669\\tx6236\\tx6803\\pardirnatural\\partightenfactor0\n', '\n', '\\f0\\fs24 \\cf0 AnzahlFragen\\\n', 'AnzahlRichtigbeantworteteFragen\\\n', 'Frage;AnzahlAntwort;Antwort;NumrischeFrage;Abweichung;FrageBeantwortetFlag}']


Was wird da alles eingelesen?
Liegt es am mac?
Wie kann ich nur den richtigen Inhalt einlesen?

Lg
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das was du siehst ist die Repraesentation der Strings. Die enthaelt sogenannte escapes, zB \n fuer neue Zeile, \\ fuer einen Backslash.

Das ist also der korrekte Inhalt, hat auch nix mit dem Mac zu tun. Mit print(line) bekommst du das erwartete Ergebnis, oder wenn du das weiter verarbeitest, etc.
kiesmo
User
Beiträge: 7
Registriert: Freitag 12. Januar 2018, 21:34

Gibt es eine Möglichkeit den ganzen Kram auszublenden und nur das anzuzeigen was tatsächlich reingeschrieben wurde?
Wenn die Datei leer ist bzw. nichts drin steht, wird mit trotzdem etwas ausgegeben:

{\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf830
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Python liest nichts, was nicht da ist. Auch wenn etwas nicht darstellbar als Buchstaben ist, ist es da. Neue Zeilen zb

Woher kommt die Datei? Kannst du die mal mit pastebin hochladen?
kiesmo
User
Beiträge: 7
Registriert: Freitag 12. Januar 2018, 21:34

Die Datei habe ich selber erstellt. :/
Wie funktioniert das mit pastebin?
kiesmo
User
Beiträge: 7
Registriert: Freitag 12. Januar 2018, 21:34

Okay, hab das Problem gefunden. Wenn ich mit textEdit eine .txt erstelle, gibt es anscheinend noch ein Header. Weiss zwar nicht was es ist, wird in der .txt nicht angezeigt, aber trotzdem eingelesen.

Wenn man übers terminal mit touch xyzzy.txt eine neue .txt erstellt, dann ist alles sauber... :D
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@kiesmo: Zum erstellen von Programmcode oder reinen Textdateien nimmt man einen richtigen Editor und nicht ein Textverarbeitungsprogramm oder ähnliches Tool. Letztere speichern neben dem Text zusätzlich Metainformationen zur Formatierung.
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nach dem zweiten Blick ist klar (und nach kbrs Kommentar) - das ist 'rich text format'. Nicht purer Text. So als ob du ein HTML-Dokument oeffnest.
Antworten