所以我决定帮你创建一个类来做。它返回一个生成器,您可以在该生成器上迭代以生成最终文件。在import csv
class DataFile(object):
empty = '' # use this if col does not have value
def __init__(self, filename):
f = open(filename, 'r')
self.reader = csv.reader(f)
# set first line as header
self.header = [x.strip() for x in self.reader.next()]
def get_header(self):
return self.header
def with_header(self, headers):
""" Returns a generator for specified headers"""
header_dict = dict([(a, i,) for i, a in enumerate(self.header)])
for line in self.reader:
li = []
for h in headers:
if h in header_dict:
li.append(line[header_dict[h]])
else:
li.append(self.empty)
yield li
您可以使用它来连接文件:file1.csv和{},因此:
^{pr2}$
然后可以使用comb和final来构建新的csv文件(使用csv writer等)。另外,您可以构建一个接受多个文件的函数,只返回包含所有文件中所有列的新生成器等。通过修改empty属性来修改值不在文件中时设置的字符。我认为这很容易理解