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
Einlesen von .fil Dateien
@Lienz20013: Welches Programm hat die denn erzeugt? Was ist da drin gespeichert? In welchem Format?
-
- User
- Beiträge: 88
- Registriert: Freitag 26. September 2014, 14:42
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.
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.
@Lienz20013: Na dann kann man das doch mit den üblichen Mitteln für Text/CSV-Dateien von Numpy oder Pandas einlesen.
-
- User
- Beiträge: 88
- Registriert: Freitag 26. September 2014, 14:42
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.
@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.
-
- User
- Beiträge: 88
- Registriert: Freitag 26. September 2014, 14:42
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'
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
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)
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:
...
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
@cofi: das geht schöner mit islice:
Code: Alles auswählen
with open(fname) as infile:
for line in itertools.islice(infile, 3, None):
...