【问题标题】:Python- Iterating through columns in csv filePython-遍历csv文件中的列
【发布时间】:2015-07-17 23:36:43
【问题描述】:

我正在做一个项目,我将不得不遍历一个 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()

【问题讨论】:

    标签: python django email csv


    【解决方案1】:

    当涉及附件时,我建议使用 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 是该列表中的有效路径,它将作为附件发送。

    【讨论】:

      【解决方案2】:

      这样的事情呢?

      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()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-07
        • 2013-04-23
        • 2019-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-24
        • 1970-01-01
        相关资源
        最近更新 更多