Python CSV-组合、清理并以正确格式输出电子邮件
我正在尝试获取多个包含姓名、电子邮件地址和其他信息的文件。从CSV格式获取这些文件并删除除电子邮件以外的所有内容。然后输出一个新文件,该文件的分号分隔符都在同一行。 最终格式应如下所示:Python CSV-组合、清理并以正确格式输出电子邮件,python,regex,email,csv,Python,Regex,Email,Csv,我正在尝试获取多个包含姓名、电子邮件地址和其他信息的文件。从CSV格式获取这些文件并删除除电子邮件以外的所有内容。然后输出一个新文件,该文件的分号分隔符都在同一行。 最终格式应如下所示: someone@hotmail.com; someoneelse@gmail.com; someone3@university.edu 我必须检查电子邮件的格式是否正确alphanumeric@alphanumeric.3letters。 我必须删除所有重复项。 我必须将此列表与另一个列表进行比较,并将其他列
someone@hotmail.com; someoneelse@gmail.com; someone3@university.edu
我必须检查电子邮件的格式是否正确alphanumeric@alphanumeric.3letters
。
我必须删除所有重复项。
我必须将此列表与另一个列表进行比较,并将其他列表中出现的电子邮件从1个列表中删除
最终的格式是,某人可以将电子邮件收件人地址复制并粘贴到Outlook中
我看了一些视频。也在这里。我发现:
但我在尝试写入新文件时出错。
我有导入csv和re
下面是我的代码:
def final_emails(email_list):
with open(email_list) as csv_file:
read_csv = csv.reader(csv_file, delimiter=',')
write_csv = csv.writer(out_emails, delimiter=";")
for row in read_csv:
email = row[2] # only take the emails (from column 3)
if email != '': # remove empties
# remove the header, or anything that doesn't have a '@'
# convert to lowercase and append to list
emails.append(re.findall('\w*@\w*.\w{3}', email.lower()))
write_csv.write([email])
return emails
final_emails(list1)
final_emails(list2)
print(emails)
我要检查底部的印刷品。
我添加了write以生成新文件,但出现了以下错误
TypeError:参数1必须具有“write”方法
我还在努力学习。这次我做了很多以前没有做过的事情,比如csv和正则表达式。
请提供任何帮助。多谢各位 您需要将
out\u电子邮件
定义为具有可写权限的文件句柄,然后才能在csv.writer中使用它
csv.writer
需要具有.write
属性(如文件句柄)的对象才能对其进行写入。似乎out\u emails
没有.write
属性。我对out\u emails的定义如下:out\u emails=r“\\path\to\file.csv”out\u emails
必须是文件句柄,类似于out\u emails=open(r”\\path\to\file.csv“,'w')