Seite 1 von 1
Mehrere CSV Files in ein Python Programm importieren
Verfasst: Sonntag 10. August 2014, 16:47
von MitschR
Hi,
ich schreibe mir gerade ein Python Programm zur Auswertung einiger Experimente. Da ich momentan an einer Stelle hänge und ich auch im Internet bis jetzt nichts gefunden habe was mir weitergeholfen hat, habe ich mir hier einen Account gemacht, um mein Problem zu schildern:
Im Prinzip muss ich, um mein Experiment auszuwerten, CSV files auswerten. An sich läuft das Programm auch gut. Ich kann ein CSV file einlesen und auswerten.
Dafür nutze ich folgende Befehlszeile:
Code: Alles auswählen
reader=csv.read(open("Beispiel1.csv", "rb"), delimiter = ",")
Danach wertet mein Programm, wie gesagt, die eingelesenen Daten aus. Nun ist es aber so, dass ich nicht 1 CSV file habe, sondern mehrere 100, die in dem Programm nacheinander ausgewertet werden sollen (und später miteinander verrechnet werden). Die Files unterscheiden sich im Namen nur anhand einer aufsteigenden Ziffer.
Das Problem wollte ich plump mit einer For-Schleife lösen. Das hat aber nicht geklappt. Weis jemand, wie man mehrere CSV files nacheinander einliest?
Danke schonmal im voraus. Ich hoffe die Beschreibung des Problems ist gut genug
Liebe Grüße
Michael
Re: Mehrere CSV Files in ein Python Programm importieren
Verfasst: Sonntag 10. August 2014, 17:35
von EyDu
Hallo und willkommen im Forum!
MitschR hat geschrieben:Das Problem wollte ich plump mit einer For-Schleife lösen. Das hat aber nicht geklappt. Weis jemand, wie man mehrere CSV files nacheinander einliest?
Mit einer for-Schleife.
Wenn du das nicht hinbekommst, dann solltest du erstmal das
Tutorial durcharbeiten. Das
glob-Modul ist in diesem Fall ebenfalls hilfreich.
Re: Mehrere CSV Files in ein Python Programm importieren
Verfasst: Sonntag 10. August 2014, 18:04
von bfm
Hallo,
kann es sein, dass das Problem daran liegt, dass du nach Durchlauf der For-Schleife das Ergebnis nicht so speicherst, dass es beim nächsten Schleifendurchlauf nicht überschrieben wird? Du schreibst ja, dass es bei einer Datei funktioniert. Sobald du das aber mit mehreren Dateien nacheinander machst, passt es nicht mehr.
mfg
Re: Mehrere CSV Files in ein Python Programm importieren
Verfasst: Sonntag 10. August 2014, 18:31
von BlackJack
@MitschR: Zur gezeigten Zeile noch der Hinweis, dass man Dateien die man öffnet, auch wieder schliessen sollte. Das Betriebssystem stellt einem Prozess nicht unbegrenzt viele Dateihandles zur Verfügung und die automatische Speicherverwaltung garantiert nicht das das Dateiobjekt sofort abgeräumt wird wenn es nicht mehr benötigt wird. Am besten verwendet man dafür die ``with``-Anweisung:
Code: Alles auswählen
with open('Beispiel1.csv', 'rb') as csv_file:
reader = csv.read(csv_file, delimiter=',')
# do something with `reader`...
Re: Mehrere CSV Files in ein Python Programm importieren
Verfasst: Sonntag 10. August 2014, 18:34
von darktrym
Oder mit einer While Schleife welche im inneren den Dateinamen generiert. Den Zugriff/Verarbeitung hast du ja soweit geklärt.
Re: Mehrere CSV Files in ein Python Programm importieren
Verfasst: Sonntag 10. August 2014, 18:41
von MitschR
Prinzipiell weis ich schon, wie man eine For-Schleife benutzt^^
Das Ding ist, dass ich nicht wirklich verstehe, wie das Einbinden von CSV Files funktioniert. Klar ich kann sagen, dass diese Programmzeile
Code: Alles auswählen
reader=csv.read(open("Beispiel1.csv", "rb"), delimiter = ",")
das macht und ich kann auch sagen was die einzelnen Teile davon bewirken, aber warum es funktioniert...keinen Schimmer.
Um das mit eine For-Schleife zu lösen müsste ich ja den Dateinamen iterieren lassen. Ungefähr so:
Code: Alles auswählen
for i in range(100):
reader=csv.read(open("Beispiel"i".csv", "rb"), delimiter = ",")
Dann könnte die importierte Datei ausgwertet werden und die nächste importiert werden. Allerdings wird "Beispiel"i".csv" niemals funktionieren.
Re: Mehrere CSV Files in ein Python Programm importieren
Verfasst: Sonntag 10. August 2014, 18:44
von BlackJack
@MitschR: Da müsste man jetzt wissen wie man Werte in Zeichenketten formatiert. Was in jedem Anfängertutorial stehen sollte.
Re: Mehrere CSV Files in ein Python Programm importieren
Verfasst: Sonntag 10. August 2014, 19:23
von /me
MitschR hat geschrieben:Allerdings wird "Beispiel"i".csv" niemals funktionieren.
Code: Alles auswählen
>>> 'Beispiel' + str(1)
'Beispiel1'
>>> 'Beispiel{}'.format(1)
'Beispiel1'
>>> for i in range(5):
print('Beispiel{}.csv'.format(i))
Beispiel0.csv
Beispiel1.csv
Beispiel2.csv
Beispiel3.csv
Beispiel4.csv
Re: Mehrere CSV Files in ein Python Programm importieren
Verfasst: Sonntag 10. August 2014, 20:23
von MitschR
@ /me
Genau das war es was ich gebraucht habe. Auch danke an die anderen die sich so rege beteiligt haben. Ist an nem Sonntag abend nicht selbverständlich.