【问题标题】:Emails via Python - Paste contents of excel/csv as a formatted table onto the mail body通过 Python 发送电子邮件 - 将 excel/csv 的内容作为格式化表格粘贴到邮件正文中
【发布时间】:2013-04-15 06:24:09
【问题描述】:

我正在尝试使用 smtplib 通过 Python 发送邮件。我主要关心的是获取 csv/excel 的内容并将数据按原样(表格格式)粘贴到正在发送的电子邮件的邮件正文中。我准备好以下 sn-p 来搜索文件并在 shell 上打印内容。如何在邮件正文中获得相同的输出?

from os import listdir
import csv
import os

#Search for a csv in the specified folder
directory = "folder_path"

def find_csv_filenames( path_to_dir, suffix="Data.csv" ):
    filenames = listdir(path_to_dir)
    return [ filename for filename in filenames if filename.endswith( suffix ) ]

filenames = find_csv_filenames(directory)
for name in filenames:
    datafile=name
    print(name)

path=directory+'//'+datafile

#Read the selected csv
with open(path,'r') as csvfile:
    spamreader=csv.reader(csvfile,delimiter=' ',quotechar='|')
    for row in spamreader:
        print(', '.join(row))

TIA 为您提供帮助。

【问题讨论】:

    标签: python email


    【解决方案1】:

    创建一个StringIO 实例,例如 csvText 而不是打印使用

    csvText.write(", ".join(row)+"\n")
    

    最后的换行符是必要的,因为它不会像 print 那样自动添加。最后(即在循环之后)调用 csvText.getvalue() 将返回您想要邮寄的内容。

    我还建议不要自己将文件规范粘合在一起,而是调用 os.path.join()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-05
      • 2014-07-24
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      相关资源
      最近更新 更多