我开始Python,我正在尝试清理CSV文件中的数据。你知道吗
我有一个电子邮件列表,但是有些字段有多封这样的电子邮件:
companyNameA | shana@example.com;privacy@example.com;info@example.com | date joined
我不知道如何为每封电子邮件复制行。其他数据应保持不变,但电子邮件应不同,如下所示:
companyNameA | shana@example.com | date joined
companyNameA | privacy@example.com | date joined
companyNameA | info@example.com | date joined
我试过这个,但不起作用:
f = open('data_file.csv')
csv_f = csv.reader(f)
for row in csv_f:
email = row[1]
single_email = email.rsplit(';', 1)[0]
你只有一个地址。你可以拆分第二列,然后循环遍历它们,就像这样:
你需要从一个csv逐行读取和写入到另一个在多行的情况下,在电子邮件栏中的电子邮件数。你知道吗
希望这是你所期待的。你知道吗
要为每个电子邮件地址创建一行,首先需要从输入CSV文件中读取每一行。这是使用CSV reader对象完成的,该对象的分隔符设置为
|
字符。然后可以使用writerows()
函数一次写入多行,通过拆分;
字符上的第二列条目找到的每个电子邮件地址对应一行。你知道吗在本例中,它是使用生成器完成的。对于每个电子邮件地址,将创建一行,其中包含输入行的第一列、当前电子邮件地址和条目行的最后一列。
writerows()
函数继续工作,直到所有电子邮件都被读入(也可以是1)。你知道吗最后,为了在输出中保留多余的空格,首先对当前电子邮件地址使用
strip()
来删除任何可能存在的空格,然后使用format()
来确保在电子邮件地址前后添加空格。你知道吗注意,Python的CSV模块不允许分隔符是多个字符。你知道吗
相关问题 更多 >
编程相关推荐