[gelöst]txt-Datei einlesen und Ausgeben

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
pythonix
User
Beiträge: 10
Registriert: Samstag 29. März 2014, 16:40

Hi! Ich bin neu hier im Forum und beschäftige mich seit gestern mit Python.

Nutze python3.2 mit Eclipse Kepler

Ich möchte eine txt-Datei einlesen, die Datei nach ',' durchsuchen / aufteilen und ausgeben. leider bleibt die Liste leer und ich weiß nicht warum...

Inhalt der Datei:

Code: Alles auswählen

2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21

Code: Alles auswählen

julie = []

try:
    with open('julie.txt') as julie_datei:
        daten = julie_datei.readline()        
        julie = daten.strip().split(',') 
except IOError:
    print('Achtung! Dateifehler!')

print(julie)
Ausgabe:
['']

Müsste da nicht folgendes ausgegeben werden!? Zumindest habe ich das erwartet... :wink:
[’2.59’, ’2.11’, ’2:11’, ’2:23’, ’3-10’, ’2-23’, ’3:10’, ’3.21’, ’3-21’]

Danke schon jetzt für eure Mühe!
Zuletzt geändert von pythonix am Samstag 29. März 2014, 21:19, insgesamt 1-mal geändert.
Benutzeravatar
Balmung
User
Beiträge: 44
Registriert: Sonntag 17. März 2013, 18:36

Ich sehe keinen Fehler. Ich vermute mal die erste Zeile der Textdatei ist einfach leer.
Vielleicht möchtest du dir zusätzlich noch das csv Modul anschauen.
»Honk Honk«
pythonix
User
Beiträge: 10
Registriert: Samstag 29. März 2014, 16:40

Danke für die Info... leider nein das dachte ich zuerst auch, aber die Datei hat nur eine Zeile mit dem Inhalt von oben.

Ich nutze Debian Linux falls diese Info noch helfen sollte.
BlackJack

@pythonix: Das kann nicht sein:

Code: Alles auswählen

bj@god:~$ python forum5.py
['2.59', '2.11', '2:11', '2:23', '3-10', '2-23', '3:10', '3.21', '3-21']
bj@god:~$ python3 forum5.py
['2.59', '2.11', '2:11', '2:23', '3-10', '2-23', '3:10', '3.21', '3-21']
bj@god:~$ cat julie.txt 
2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21
bj@god:~$ cat forum5.py
julie = []
 
try:
    with open('julie.txt') as julie_datei:
        daten = julie_datei.readline()        
        julie = daten.strip().split(',')
except IOError:
    print('Achtung! Dateifehler!')
 
print(julie)
pythonix
User
Beiträge: 10
Registriert: Samstag 29. März 2014, 16:40

Hey jetzt klappt es - Danke für eure schnelle Hilfe!

Ich hatte meine "test.py" Datei in einem anderen Verzeichnis als die julie.txt . Leider hat Python keine Fehlermeldung gebracht das es die Datei nicht finden kann, sondern nur wenn ich den Dateinamen im Script geändert habe, also z.B. von julie.txt auf julie-11111.txt.

Dann mache ich jetzt mal weiter... bis bald :lol:
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Eventuell hast du unsichtbare Steuerzeichen wie „\r“ vor deiner Liste.

Edit: Ich habe das geschrieben, bevor die Nachricht kam, dass es an etwas anderem lag.
Edit #2: Du solltest dir angewöhnen, bei Aufrufen von „open()“ den Mode-Parameter mitzugeben, obwohl er schon standardmäßig „r“ ist. So ist es einfach lesbarer / unmissverständlicher.
pythonix
User
Beiträge: 10
Registriert: Samstag 29. März 2014, 16:40

OK gute Info, habe gleich die 'r' hinzugefügt.

Das mit dem csv-Modul werde ich mir auch noch anschauen.

Als Anfänger hat man immer das Problem, das sehr viele neue Dinge auf einmal auf einen "hereinprasseln".
BlackJack

@pythonix: Da muss eine Datei mit dem Namen im Pfad gewesen sein, denn sonst hätte es selbstverständlich eine Ausnahme gegeben und aus einer nicht vorhandenen Datei hätte auch keine leere Zeile ausgelesen werden können.
Antworten