我正在尝试创建一个新的 csv 文件,其中只有来自另一个现有 csv 文件的一列。 Python 不是在 csv 文件中仅在一列中打印地址,而是将地址分布在多列中。我该怎么做才能消除多列问题。
from __future__ import absolute_import, division, print_function
import csv
from itertools import imap
from operator import itemgetter
def main():
delimiter = ','
with open('C:/Addresses.csv', 'rb') as input_file:
reader = csv.reader(input_file, delimiter=delimiter)
with open('thefirstcolumn.csv', 'wb') as output_file:
writer = csv.writer(output_file, delimiter=delimiter)
writer.writerows(imap(itemgetter(1), reader))
if __name__ == '__main__':
main()
在原始文件中:
abcdcolumn Address
********-A-1 6525 Mountain
********-A-2 6543 Mountain
********-A-4 6579 Mountain
********-A-5 6597 Mountain
********-A-6 6615 Mountain
********-A-7 6633 Mountain
新的 csv 文件中的结果:
A d d r e s s
6 5 2 5 M o u n t
6 5 4 3 M o u n t
6 5 6 1 M o u n t
6 5 7 9 M o u n t
6 5 9 7 M o u n t
6 6 1 5 M o u n t
6 6 3 3 M o u n t
请您参考如下方法:
writer.writerows 需要一个列表列表,而您正在为其提供一个字符串列表。
将 writer.writerows(imap(itemgetter(1), reader)) 更改为如下内容:
for address in imap(itemgetter(1), reader):
writer.writerow([address])
应该可以。
