我有一個包含大約3000或4000個csv文件的目錄,所有文件都具有相同的基本格式(爲簡單起見,已將其更改爲簡單數字和標題) :如何從多個csv文件中提取特定數據並放入python中的新單個csv中
A,B,C,D,E,F,G,H,I,J # header
1,2,3,4,5,6,7,8,9,0 # let's call this line X
0,1,2,3,4,5,6,7,8,9 # let's call this line Y
我想創建包含來自所有原有的特定信息中的一個主csv文件,具有以下這種格式頭:filename,XI,YB,XB,YB-XB
。
繼續前面的例子,這是標題和新的CSV文件的第一行會非常的樣子:
filename,XI,YB,XB,YB-XB
File1,9,1,2,-1
File2,...
...等,創建一個包含一個主csv文件來自目錄中每個原始csv的相同特定信息。
我是新來的python,並試圖編寫一個代碼,這將爲我做這件事,但這比我以前的少量實踐更復雜。任何幫助解釋如何做到這一點或代碼的例子將不勝感激。
謝謝,艾琳
編輯: 網上找,看看是否能找到,如果有已經回答了這個問題之後,我能夠拼湊大部分的工作代碼放在一起是完成我想要的它要做,儘管我仍然無法訪問原始CSV文件中的特定數字。這裏是我想出迄今:
import glob
import os
outfile = open('path/output.csv', 'w')
outfile.write('filename,XI,YB,XB,YB-XB\n')
for filename in glob.glob('path/*.csv'):
if filename == 'output.csv':
continue # to skip this file
with open(filename, 'r') as infile:
count = 0
lineno = 0
for lineno == 1:
continue # skips header
fields = line.split(',')
a = # Here goes the code to access XI
b = # Here goes the code to access YB
c = # Here goes the code to access XB
d = b - c
outfile.write('%s,%g,%g,%g,%g\n' % (filename, a, b, c, d))
count += 1
if count == 0: # in case of empty files
outfile.write('%s,0,0,0,0\n' % filename)
print '%s is empty!' % filename
outfile.close()
粘貼代碼! –
確實!分享你的嘗試,也許你認爲你可以解決它! – Zimano
我現在已經添加了這個代碼。 – Erin