2017-05-23 46 views
0

我有多個帶有不同分隔符(|,)的文件。我需要在read_cvs函數中使用不同的seperater。這是可能的,或者我需要將分隔符轉換爲一個(行逗號),然後使用sep =','?python具有不同分隔符的多個文本文件

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 

用於轉換:

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

結果:

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

當你嘗試時會發生什麼? – spies006

+0

第二種解決方案(首先基於轉換每個文本文件)返回連接的路徑。請查看我問題底部的結果。 – Roo

回答

0

pd.read_csv通常會將多個字符的定界符作爲正則表達式(documentation)。因此,您可以使用一組語法(如sep="[\|,]")來指示多個分隔符。

相關問題