Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无循环读取csv内容_Python_Django_Csv - Fatal编程技术网

Python 无循环读取csv内容

Python 无循环读取csv内容,python,django,csv,Python,Django,Csv,我正在尝试将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> 我越来越 <open file 's

我正在尝试将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>
我越来越

<open file 'stats.csv', mode 'r' at 0x1a76030>

内部附件


我只想发送csv文件作为附件,其中显示了csv文件的内容。我做错了什么

我这样做就解决了:

f = open('stats.csv', 'r+')
filedata = f.read()
msg.attach_alternative(filedata, "text/csv")
response = HttpResponse(content_type='text/csv')
writer = csv.writer(response)
msg.attach('stats.csv', response, 'text/csv')

我认为这个函数
msg.attach
filedata
转换成一个字符串,这就是它打印该字符串的原因。就像使用
打印文件数据时一样。
msg
来自哪个类?如果您试图将
csv
文件作为附件发送,我认为您甚至不需要使用
csv.reader
。你可以像对待任何其他文件一样对待它。@t.pimentel
msg
来自
emailmultialternations
@g4ur4v如果只发送
f
,我会得到
attachment@t.pimentel
attach
应将其视为文件,因为我提供的是
text/csv
,而不是转换为字符串。不应该吗?那太好了,但我正在Fly上创建文件将其保存在临时位置并使用
msg.attach\u file
。保存并再次读取会产生太多开销。文件已经存在,问题是如何使附件显示其内容。
response = HttpResponse(content_type='text/csv')
writer = csv.writer(response)
msg.attach('stats.csv', response, 'text/csv')