2017-02-06 3 views
1

Ich versuche, einige CSV-Felddaten auf Python für die Nachbearbeitung zu lesen, ich verwende in der Regel nur so etwas wie:Python: Parsen mehr CSV-Dateien und überspringen Dateien ohne Schlüsselwort

for flist in glob('*.csv'): 
    df = pd.read_csv(flist, delimiter = ',') 

aber ich brauche filtere durch die schlechten Dateien, die "Run_Terminated" irgendwo in der Datei enthalten und überspringe die Datei vollständig. Ich bin noch neu in Python, so dass ich nicht mit all seinen Funktionen vertraut bin, würde jede Eingabe geschätzt werden. Vielen Dank.

Antwort

2

Was Sie tun können, ist zunächst die Datei vollständig im Speicher lesen (unter Verwendung eines io.StringIO Datei-ähnliches Objekt und sucht die Run_Terminated Zeichenfolge überall in der Datei (schmutzig, aber sollte in Ordnung sein),

Dann passieren die Griff zu read_csv (da Sie einen Griff oder einen Dateinamen passieren kann), so dass Sie haben es nicht wieder aus der Datei zu lesen.

import pandas as pd 
import glob 
import io 

for flist in glob('*.csv'): 
    with open(flist) as f: 
     data = io.StringIO() 
     data.write(f.read()) 
    if "Run_Terminated" not in data.getvalue(): 
     data.seek(0) # rewind or it won't read anything 
     df = pd.read_csv(data, delimiter = ',') 
+0

Thank you! schätzen die Erklärung. – Raku

Verwandte Themen