读取50个CSV文件

时间:2017-08-10 20:28:35

标签: python

我想阅读50个CSV文件,并将结果写入单个CSV文件。我当前的代码只读取1.csv的单个CSV文件,并将输出写入out.csv。我该如何调整此代码?请帮忙。

import csv

f1 = open("1.csv", "rb")
reader = csv.reader(f1)
header = reader.next()
f2 = open("out.csv", "wb")
writer = csv.writer(f2)

writer.writerow(header)
for row in reader:
    if row[8] == 'READ' and row[10] != '0000':
        writer.writerow(row)

f1.close()
f2.close()

2 个答案:

答案 0 :(得分:1)

尝试使用glob循环浏览文件,阅读文件然后将其附加到新文件中。

要在文件中搜索带有标识符的行,请使用re

import glob
import re

out = []
for fil in glob.glob("path/to/files/*.csv"):
    for line in open(fil,'r'):
        if re.search('READ',line):
            out.append(line)

答案 1 :(得分:0)

你需要在Python中查看类似os的内容,然后浏览每个单独工作的excel文件目录。您不必在每次处理文件时写入新页面,而是附加到您要写入的文件。

此示例将遍历连接到根树的所有文档,查找所有目录中的所有文件。如果您将所有文件都放在一个目录中,这可能会有点过分。

import os

# traverse root directory, and list directories as dirs and excel files as files
for root, dirs, files in os.walk("."):
    path = root.split(os.sep)
    print((len(path) - 1) * '---', os.path.basename(root))
    for file in files:
        print(len(path) * '---', file)