【问题标题】:Reading csv files to send discrete pdf files读取 csv 文件以发送离散的 pdf 文件
【发布时间】:2020-08-10 16:53:23
【问题描述】:

我是 Python 的新手。我正在尝试这样做,以便我可以打开一个 csv,如果 csv 的姓氏与 pdf 文件的姓氏匹配,它会自动发送到该电子邮件地址。

这样做的原因是我必须每两周向人们发送大约 150 个工资单,而且我知道必须有一种方法可以自动化它。我找到了几个展示如何阅读 csv 文件的地方,我正在努力阅读和匹配 pdf 文件。

这是我目前所拥有的。肯定有一些错误。

    import smtplib, ssl
    from email import encoders
    from email.mime.base import MIMEBase
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart

    smtp_server = "smtp.gmail.com"
    port = 465

    sender = "@@@gmail.com"
   password = input("enter password here")
   receiver = "testtest@gmail.com"

    message = MIMEMultipart("Multipart Test")
    message['Subject'] = 'Pay stub'
    message['From'] = sender
   message['To'] = receiver

    text = """\

    Hey,

    Here is your pay stub.  If you have any corrections please let me know ASAP.

    Thanks
    """

    html= """\
     <html>
        <body>
            <p>Hey,
            Here is your pay stub.  If you have any corrections please let me know ASAP.

    Thanks
            </p>
        </body>
    </html>
    """
    part1 = MIMEText(text, 'plain')
    part2 = MIMEText(html, "html")

     filename="cg_email"

    with open(filename, "rb") as attachment:
        part_a = MIMEBase('application', 'octet-stream')
        part_a.set_payload(attachment.read()

    encoders.encode_base64(part_a)
    part_a.add_header(
        'Content Disposition',
        f'attachment; filename={filename}'
     )

    message.attach(part1)
    message.attach(part2)
    message.attach(part_a)

    context= ssl.create_default_context()

    with smtplib.SMTP_SSL(smtp_server, port, context=context) as server

【问题讨论】:

  • 你有什么问题?
  • 如何制作它,以便我可以读取 csv 并将离散的 pdf 文件连同他们的信息一起发送给每个员工。例如,我希望能够读取 csv Bob Smith,然后让脚本查看电子邮件地址,然后找到相应的 pdf 文件,然后将其通过电子邮件发送给 Bob Smith。
  • 你尝试过什么做你想做的事?您的问题似乎是关于读取 CSV 文件,您的示例是发送电子邮件。
  • 对,我想从一个csv文件中读取,将csv文件中的姓与pdf文件对应的姓匹配,然后我希望它发送一封附有pdf的电子邮件到 csv 文件中存储的电子邮件。

标签: python python-3.x csv pdf


【解决方案1】:

我无法得到您想要做什么,但要读取 csv 文件,您可以尝试以下代码

假设 CSV 包含数据为

[在]

#to read CSV Files 
dr = csv.DictReader(open('file.csv')) 

#getting Columns
columns = dr.fieldnames

#reading row records one by one
for r in dr.reader:
    # To create a dictionary with column_names as keys and row cells values as values
    record = dict(zip(columns, r)) 
    print(record)
    
    print('FileName: ', record['FileName'])
    print('FilePath: ', record['FilePath'])

【讨论】:

    猜你喜欢
    • 2021-05-10
    • 2018-10-08
    • 1970-01-01
    • 2012-03-17
    • 2020-04-29
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    相关资源
    最近更新 更多