【发布时间】:2015-05-11 05:37:16
【问题描述】:
我有一个 CSV 文件,其中一列的数据类型为 500 封电子邮件:
[['Lindsey Jessica <xyz@icloud.com>'],
['Jonathan Bob <a@xyz.edu>'],
['Homer Simpson <b@xyz.edu>']
我需要将它放入一个新的 CSV 文件中,其中 3 列由分隔
**FirstName** **LastName** **Email**
我设法将 CSV 的一列分成一个包含 3 个元素的列表:
["['Lindsey", 'M', "<lindsey@icloud.com>']", "['Jonathan", 'Andre', "<andre@xyz.edu>']", "['Greg", 'Kohl', "<kohls@gmail.com>']",...etc]
但现在我需要将它写入 CSV,使其看起来像这样:
Col 1 Col 2 Col 3
Row 1 John Doe <mail-noreply@google.com>
Row 2 Joe Doe <mail-noreply@google.com>
Row 3 Jacob Doe <mail-noreply@google.com>
最好去掉电子邮件上的那些“”标志,这样我就可以将它们导入 mailchimp。但是我不知道如何将我的列表写成 3 列..
我的代码:
import csv
filename = ('email_list1.csv')
with open(filename, 'rt', encoding="utf-8") as f:
reader = csv.reader(f)
email_list = list(reader)
email_list = (' '.join(str(v) for v in email_list)) ## Convert to string
email_list = email_list.split() #Split into seperate elements in a list: first, last, email
## Trying to print out in columns instead of rows
out = open('email_list2.csv', 'w')
for element in email_list:
out.write(element)
#print (element)
out.write('\n')
out.close()
我尝试使用 zip 功能无济于事,所以我不确定最好的方法是否是分成三个列表,如
firstname = []
lastname = []
email = []
或将它们写入 3 列。谢谢
【问题讨论】:
-
输入在您的 csv 中实际上是什么样子的,它是用逗号分隔的吗?你不是已经有三列了吗?