我想阅读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()
答案 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)