2017-05-23 1 views
0

Ich habe mehrere Dateien mit unterschiedlichen Trennzeichen (|,). Ich muss verschiedene seperater in read_cvs Funktion verwenden. Ist das möglich oder muss ich das Trennzeichen in eins umwandeln (Zeilenkomma) und dann sep = ',' verwenden?Python mehrere Textdatei mit verschiedenen Delimeter

import glob 
path =r'C:\Users\hadadir\Desktop\temp' # use your path 
all_Files = glob.glob(path + "/*.txt") 
frame = pd.DataFrame() 
df = pd.concat((pd.read_csv(f, sep=",|", header = None , nrows=2) for f in all_Files)) 
df 

    0 1 2 3 4 5 6 7 
0 3130A0|QE|39104|2000|20140630|0|17306|2000 NaN NaN NaN NaN NaN NaN NaN 
1 3130A0|QY|39104|0|20140630|-1000|17306|1000 NaN NaN NaN NaN NaN NaN NaN 
0 "3135G0" "XC" "39104" 1000 20130630 1000 "17306" 1000 
1 "3136FP" "DY" "39104" 2000 20130630 0 "17306" 2000 

zum Umwandeln:

import glob 
path =r'C:\Users\hadadir\Desktop\temp' # use your path 
all_Files = glob.glob(path + "/*.txt") 
frame = pd.DataFrame() 

Ergebnisse:

C:\Users\hadadir\Desktop\temp\HOLDINGQ2.TXTC:\Users\hadadir\Desktop\temp\HOLDING_20131224.txt 
+0

Was passiert, wenn Sie es versuchen? – spies006

+0

Die zweite Lösung (basierend auf dem Konvertieren jeder Textdatei zuerst) gibt die verketteten Pfade zurück. Bitte sehen Sie die Ergebnisse am Ende meiner Frage. – Roo

Antwort

0

pd.read_csv behandelt allgemein Mehr Zeichenbegrenzer als regulärer Ausdruck (documentation). Daher können Sie eine Set-Syntax (wie sep="[\|,]") verwenden, um mehrere Trennzeichen anzugeben.

Verwandte Themen