Seite 1 von 1
Einlesen von .fil Dateien
Verfasst: Freitag 1. Mai 2015, 15:55
von Lienz20013
Hi,
ich habe sehr viele Dateien mit der Endung .fil. Wie kann ich diese einlesen und zusammenführen in Python. Also zum Beispiel eine große .csv Datei daraus machen?
Über Hilfe würde ich mich freuen.
Grüße
Re: Einlesen von .fil Dateien
Verfasst: Freitag 1. Mai 2015, 16:10
von BlackJack
@Lienz20013: Welches Programm hat die denn erzeugt? Was ist da drin gespeichert? In welchem Format?
Re: Einlesen von .fil Dateien
Verfasst: Montag 4. Mai 2015, 10:10
von Lienz20013
Welches Programm weiß ich nicht. Die Dateien sehen so aus:
start: 15.09.2011
ende: 01.10.2011
20110915 0 9999000
20110915 10000 9999000
20110915 20000 58719
20110915 30000 56761
20110915 40000 51767
20110915 50000 51117
20110915 60000 67417
20110915 70000 97679
....
Drei Spalten mit Datum, Zähler, Temperatur.
Re: Einlesen von .fil Dateien
Verfasst: Montag 4. Mai 2015, 10:26
von BlackJack
@Lienz20013: Na dann kann man das doch mit den üblichen Mitteln für Text/CSV-Dateien von Numpy oder Pandas einlesen.
Re: Einlesen von .fil Dateien
Verfasst: Montag 4. Mai 2015, 11:47
von Lienz20013
Also zu Beispiel pandas.io.parsers.read_csv. Probier ich manl aus. Ich dachte das geht wegen der endung nicht und es würde so was geben wie read_fil.
Re: Einlesen von .fil Dateien
Verfasst: Montag 4. Mai 2015, 12:32
von BlackJack
@Lienz20013: Dazu müsste ``*.fil`` ja irgendwie ein bekanntes und halbwegs verbreitetes Format sein für das die Pandas-Entwickler eine `read_fil()`-Funktion geschrieben haben.
Re: Einlesen von .fil Dateien
Verfasst: Montag 4. Mai 2015, 12:48
von Lienz20013
Ich habs hinbekommen aber jetzt frag ich mich wie ich die obersten 3 zeilen jedes files nicht mit einlese und zwar mach ich das bis jetzt so:
Code: Alles auswählen
directory = r"data/RAW/klima_1_stunden-daten/"
files = "*.fil"
filenames = glob.glob(directory + files)
with open('data/climateMOX_long_therm.txt', 'w') as outfile:
for fname in filenames:
with open(fname) as infile:
for line in infile:
outfile.write(line)
climate_Moxa = 'data/climateMOX_long_therm.txt'
Re: Einlesen von .fil Dateien
Verfasst: Montag 4. Mai 2015, 13:02
von cofi
Das von dir zitierte `pandas.io.parsers.read_csv` kennt einen `skiprows` Parameter der genau das tut was du brauchst.
Daneben kann man natuerlich auch selbst zeilen ueberspringen (was evtl zu bevorzugen ist, wenn du nur die Dateien mergen willst)
Code: Alles auswählen
with open(fname) as infile:
for _ in itertools.izip(infile, xrange(3)):
pass
for line in infile:
...
Re: Einlesen von .fil Dateien
Verfasst: Montag 4. Mai 2015, 13:23
von Sirius3
@cofi: das geht schöner mit islice:
Code: Alles auswählen
with open(fname) as infile:
for line in itertools.islice(infile, 3, None):
...