我有一个CSV,其信息和格式类似于我在下面提供的信息作为示例:
FileType clientid cust_name cust_num cust_email
SL 137856 Jim Smith A756 jim@aol.com
SL 137856 Paul Yung H568 yungster@yahoo.com
SL 137856 Tim Jeffries T478 timbo@gmail.com
SL 137856 Tom Reedy N290 reddy76@gmail.com
我想在第一个列之后插入一个列,并用一个字符串填充它:
FileType dealerid clientid cust_name cust_num cust_email
SL RB6745 137856 Jim Smith A756 jim@aol.com
SL RB6745 137856 Paul Yung H568 yungster@yahoo.com
SL RB6745 137856 Tim Jeffries T478 timbo@gmail.com
SL RB6745 137856 Tom Reedy N290 reddy76@gmail.com
我目前仍然坚持使用这段代码,我过去曾使用这段代码将一个列附加到csv文件的开头,我稍微对其进行了修改以尝试使其适用于我的目的:< / p>
with open(id_append_file_path, 'rb') as inf, open(append_file_path + 'new' + append_file_name, 'wb') as outf:
reader = csv.DictReader(inf)
fields = reader.fieldnames
fields.insert(1, 'dealerid')
writer = csv.DictWriter(outf, fields)
writer.writeheader()
for node, row in enumerate(reader, 1):
row['dealerid'] = dealer_id
writer.writerow(row)
但这些是我打开新CSV时看到的结果:
FileType dealerid clientid cust_name cust_num cust_email
SL RB6745 Jim Smith A756 jim@aol.com
SL RB6745 Paul Yung H568 yungster@yahoo.com
SL RB6745 Tim Jeffries T478 timbo@gmail.com
SL RB6745 Tom Reedy N290 reddy76@gmail.com
我仍然相当陌生,所以也许我错过了一些东西。我使用的是Python 2.7.11。
答案 0 :(得分:2)
您正在修改阅读器正在使用的fieldnames
列表:
fields = reader.fieldnames
fields.insert(1, 'dealerid')
将其替换为fields = list(reader.fieldnames)
或fields = reader.fieldnames[:]
或将要制作副本的内容,因此您不会改变原文。