Python-迭代csv文件中的列

时间:2015-07-17 23:36:44

标签: python django email csv

我正在开发一个项目,我将不得不迭代csv文件。 我想看看每行的4列(第3个插槽)是否已经在我的字典中有一个包含该人姓名和电子邮件地址的电子邮件地址。如果他们是我想寄回他们的附件。我对Python不太熟悉,所以我想看看我是否正朝着正确的方向前进

以下是示例代码:

导入csv

with open("file.csv") as csv_file:
for row in csv.reader(csv_file, delimiter=','):
    if row[3] in data_dict:
        email = EmailMessage('subject', 'body', [address@something.com])
        email.attach_file('/folder/name.csv')
        email.send()

2 个答案:

答案 0 :(得分:0)

当涉及附件时,我会建议yagmail包裹(完整披露:我是开发者)

通过运行获取它:

pip install yagmail # for python 2
pip3 install yagmail # for python3 

然后:

import yagmail

yag = yagmail.SMTP('myemail', 'mypassword')

with open("file.csv") as csv_file:
for row in csv.reader(csv_file, delimiter=','):
    row = row.split(',')
    if row[3] in data_dict:
        contents = ['See my file attached', '/folder/name.csv']
        yag.send(row[3] + '@email.com', 'subject', contents)

请注意,任何可以作为文件打开的内容都会被附加(当传递给contents参数时),因此如果/folder/name.csv是该列表中的有效路径,它将作为附件。

答案 1 :(得分:0)

这样的事情怎么样?

with open("file.csv") as f:
    for line in f.readlines():
        cols = line.split(',')
        if cols[3] in data_dict:
            email = EmailMessage('subject', 'body', [address@something.com])
            email.attach_file('/folder/name.csv')
            email.send()