Seite 1 von 1

Datei einlesen und in variablen speichern

Verfasst: Montag 17. Oktober 2011, 21:02
von alex87
Hallo bräuchte bei meinem Problem etwas hilfe. Habe eine .csv Datei dessen Daten mit einem ";" abgetrennt sind.

Code: Alles auswählen

source = open('testdatei.csv', mode='r')
for zeile in Datei:
    (eins, zwei)=zeile.split(';')
    
Jetzt kann ich zwar mit print(eins) in der for schleife zwar alle ausgeben lassen aber die datei hat etwa 80 zeilen. Die Ausgabe sieht dann so aus :

Code: Alles auswählen

user1
user2
user3
...
user80
Ich würde es gerne so machen, dass ich jeden "Datensatz" in einer Liste abspeicher. Aber wie mache ich das? Komme echt nicht mehr weiter
Also userdaten = [user1, user2, user3] Halt mit allen 80 drinnen. Hat jemand einen Tipp für mich ? :-D

Re: Datei einlesen und in variablen speichern

Verfasst: Montag 17. Oktober 2011, 21:25
von BlackJack
@alex87: Arbeite das Tutorial in der Dokumentation durch. Danach solltest Du das können.

Re: Datei einlesen und in variablen speichern

Verfasst: Montag 17. Oktober 2011, 21:26
von alex87
Könntest du mir ein link zur dokumentation schicken?

Re: Datei einlesen und in variablen speichern

Verfasst: Montag 17. Oktober 2011, 21:39
von problembär
Ich mache das so:

Code: Alles auswählen

filehandle = file('testdatei.csv', 'r')
source = filehandle.readlines()
filehandle.close()
Lies' mal lieber ein systematisches Buch, z.B.:

http://abop-german.berlios.de/

Re: Datei einlesen und in variablen speichern

Verfasst: Montag 17. Oktober 2011, 22:18
von BlackJack
@alex87: http://docs.python.org/ sollte man eigentlich finden können.

@problembär: Statt `file` sollte man `open` verwenden. In Python 3.x gibt es `file` auch gar nicht mehr als „eingebauten“ Namen.

Re: Datei einlesen und in variablen speichern

Verfasst: Dienstag 18. Oktober 2011, 09:16
von problembär
BlackJack hat geschrieben:@problembär: Statt `file` sollte man `open` verwenden. In Python 3.x gibt es `file` auch gar nicht mehr als „eingebauten“ Namen.
Danke für den Hinweis. "open()" war ja ursprünglich der Standard, z.B. in C oder in Perl. Dann hieß es, in Python nehme man aber "file()". Und nun also doch wieder "open()".
Eigentlich schrieb ich "file()", um besonders modern und aktuell zu sein. Aber die Mode ändert sich offenbar schnell. Und in diesem Fall sogar wieder zurück.

Re: Datei einlesen und in variablen speichern

Verfasst: Dienstag 18. Oktober 2011, 10:21
von /me
problembär hat geschrieben:"open()" war ja ursprünglich der Standard, z.B. in C oder in Perl. Dann hieß es, in Python nehme man aber "file()". Und nun also doch wieder "open()".
Eigentlich schrieb ich "file()", um besonders modern und aktuell zu sein. Aber die Mode ändert sich offenbar schnell. Und in diesem Fall sogar wieder zurück.
file() kam mit 2.2 und ab 2.5 gab es dann die Empfehlung, für das Öffnen einer Datei doch lieber wieder open() zu verwenden. Es hat sich also tatsächlich vor 10 Jahren geändert, seit 5 Jahren ist allerdings open() wieder die geeignete Wahl. So schnell war die Umstellung dann doch wieder nicht, aber besonders glücklich auch nicht gerade.

Re: Datei einlesen und in variablen speichern

Verfasst: Dienstag 18. Oktober 2011, 10:58
von BlackJack
Wurde `file()` denn überhaupt mal *zum öffnen* von Dateien empfohlen? Das wurde als Datentyp eingeführt weil von `open` erben blöd aussieht, aber nicht um eine andere Möglichkeit zu haben Dateien zu öffnen.

Re: Datei einlesen und in variablen speichern

Verfasst: Dienstag 18. Oktober 2011, 11:47
von /me
BlackJack hat geschrieben:Wurde `file()` denn überhaupt mal *zum öffnen* von Dateien empfohlen?
Schau mal unter http://docs.python.org/release/2.2/lib/ ... funcs.html: "The file() constructor is new in Python 2.2. The previous spelling, open(), is retained for compatibility, and is an alias for file()."

Re: Datei einlesen und in variablen speichern

Verfasst: Dienstag 18. Oktober 2011, 11:53
von BlackJack
Hm, dann bin ich wohl von der Python-Newsgroup beeinflusst. Da hat solange ich mich zurück erinnern kann jeder der `file()` verwendet hat, eins auf die Finger bekommen, er solle doch bitte `open()` benutzen.

Re: Datei einlesen und in variablen speichern

Verfasst: Dienstag 18. Oktober 2011, 12:33
von Hyperion
problembär hat geschrieben:Ich mache das so:

Code: Alles auswählen

filehandle = file('testdatei.csv', 'r')
source = filehandle.readlines()
filehandle.close()
Besser - neben der `open`-Problematik - ist es aber so:

Code: Alles auswählen

with open("filename", "r") as filehandler:
     # tue irgend was mit filehandler