【发布时间】:2014-09-20 20:17:15
【问题描述】:
我正在尝试将 csv 文件附加到消息并发送出去。
# i generated the file 'stats.csv' and it is there.
f = open('stats.csv')
filedata = csv.reader(f)
msg.attach('stats.csv', filedata, 'text/csv')
但我收到的每封电子邮件的附件只有这一行:
<_csv.reader object at 0x1b1e750>
如果我尝试
f = open('stats.csv')
msg.attach('stats.csv', f, 'text/csv')
我得到了
<open file 'stats.csv', mode 'r' at 0x1a76030>
内部附件。
我只想发送 csv 文件作为显示 csv 文件内容的附件。我究竟做错了什么?
【问题讨论】:
-
我认为这个函数
msg.attach将filedata转换为一个字符串,这就是它打印的原因。就像您使用print filedata时一样。msg来自哪个班级? -
如果您尝试将
csv文件作为附件发送,我认为您甚至不需要使用csv.reader。您可以像对待任何其他文件一样对待它。 -
@t.pimentel
msg来自EmailMultiAlternatives -
@g4ur4v 如果只发送
f,我会在附件中收到<open file 'stats.csv', mode 'r' at 0x1a76030> -
@t.pimentel
attach应该将其视为文件,因为我提供了text/csv,而不是转换为字符串。不应该吗?