如何在内存中读取本地存储中的文件并将其附加到电子邮件中? - python

此代码段将生成一个xlsx文件,然后将该文件附加到电子邮件中
注意:我没有保存任何文件,它在内存中。

import io
a = io.BytesIO()
from django.core.mail import EmailMessage
import xlsxwriter
workbook = xlsxwriter.Workbook(a, {'in_memory': True})
worksheet_s = workbook.add_worksheet('abcd')
worksheet_s.write(0, 0, 'Hello, world!')
workbook.close()
a.seek(0)
email = EmailMessage('Subject', 'Body', '[email protected]', ['[email protected]'])
email.attach('file.xlsx', a.getvalue())
email.send()

与此类似,我想将存储设备中的文件附加到电子邮件,但首先要在内存中打开它。
 正如我正在尝试编写通用代码以从一个地方发送电子邮件,无论它是否具有附件(自行生成的文件或存储中的文件)。

像这样

from django.core.mail import EmailMessage
file = open('file.jpeg')
email = EmailMessage('Subject', 'Body', '[email protected]', ['[email protected]'])
email.attach(file.name, file.getvalue())
email.send()

提前致谢。

python参考方案

我看到您不想保存文件-只保存在内存中。然后,您可以使用此示例。另外你需要安装openpyxl

from openpyxl.writer.excel import save_virtual_workbook
from openpyxl import Workbook
from django.core.mail import EmailMessage
email = EmailMessage('Subject', 'Body', '[email protected]', ['[email protected]'])
wb = Workbook()
ws = wb.active
ws['A1'] = 42
file = save_virtual_workbook(wb)
email.attach('file_name.xlsx', file)
email.send()

如何在Django中获取视图函数的URL路径 - python

举个例子:view.pydef view1( request ): return HttpResponse( "just a test..." ) urls.pyurlpatterns = patterns('', url( r'^view1$', 'app1.view.view1…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

Django表单;使用ModelForm覆盖选择 - python

我想做的是根据页面隐藏或显示一些选择。例如,models.pyUSA = 'usa' FRANCE = 'france' CHINA = 'china' GERMANY = 'germany' SPAIN = 'spain' TOPICS = ( (USA, …

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

Python:同时在for循环中添加到列表列表 - python

我想用for循环外的0索引值创建一个新列表,然后使用for循环添加到相同的列表。我的玩具示例是:import random data = ['t1', 't2', 't3'] masterlist = [['col1', 'animal1', 'an…