2016-04-18 15 views
0

複数のcsvファイル(同じデータ型/列)を開き、1つの変数にデータを保存してデータにいくつかの処理を行い、1つのCSVファイルに保存します。 1つのファイルを簡単に開くことはできますが、複数のファイルを開く方法を見つけることはできません。ここに私のコードは次のとおりです。Python 3:複数の.csvファイルを開く

import numpy as np 
import csv 
from collections import Counter 

files = ['11.csv', '12.csv', '13.csv', '14.csv', '15.csv'] 

with open(files) as csvfile: 
    info = csv.reader(csvfile, delimiter=',') 
    info_types = [] 
    records = 0 
    for row in info: 
     records = row[2] 
     call_types.append(records) 
stats = Counter(call_types).most_common() 
print(stats) 

results = stats 
resultFile = open("Totals.csv",'w') 
wr = csv.writer(resultFile, dialect='excel') 
for output in results: 
    wr.writerow(output) 

答えて

0

、それを動作させるsimultaneouly以下のバグを起こしやすいと効率的は、以下のことを試してくださいするには。

# required imports 

files = ['11.csv', '12.csv', '13.csv', '14.csv', '15.csv'] 

with open("outfile","wt") as fw: 
    writer = csv.writer(fw) 
    for file in files: 
     with open(file) as csvfile: 
      info = csv.reader(csvfile, delimiter=',') 
      info_types = [] 
      records = 0 
      for row in info: 
       # process row but don't store it 
       # in any list if you 
       # don't have to(that will defeat the purpose) 
       # say you get processed_row 
       writer.writerow(processed_row) 
+0

ありがとうございました。それは夢のように働いた!今度は、最初のファイルに続いて各ファイルのヘッダーをスキップする方法を理解する必要があります。 – Chuck

+0

@Chuck 'for info:'の 'の前に' header = next(info) 'を追加するだけです。 –

+0

これは素晴らしいことです。再度、感謝します! – Chuck

0

これはループ内で行います。あなたがファイルから読み込んでいるときにすでにデータを追加しているからです。

for f in files: 
    with open(f) as csvfile: 
     ... 
関連する問題