问题遇到的现象和发生背景
每天爬出来的文件,需要当天发送邮件,文件名称是变量,一直没想通,在把文件作为附件提取上传的时候,应该用什么代码写,自己简单写的,总感觉逻辑不对,老报错
问题相关代码,请勿粘贴截图
#价格爬取以及xlsx保存的代码
if __name__ == '__main__':
# 爬取京东页面价(通过更改第一个urls里面的商品id进行链接的调整)
jd_urls = ["100010666763"]
jd_urls = ['https://item.jd.com/%s.html' % i for i in jd_urls]
today_str = datetime.datetime.today().strftime('%Y-%m-%d')
jdPageDetail = JdPageDetail()
jd_csv_path, jd_xls_path = 'temp_jd_{0}.csv'.format(today_str), 'temp_jd_{0}.xlsx'.format(today_str)
jdPageDetail.get_jd_pro_info_new(jd_urls, jd_csv_path)
handleData = HandleDataNew()
handleData.handleFinish(jd_csv_path, 'jd',jd_xls_path)
#发送邮件附件
import smtplib
from email.mime.multipart import MIMEMultipart
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
from email.mime.application import MIMEApplication
# 发件人邮箱
asender = "123@sina.com"
# 收件人邮箱
areceiver = "123@sina.com"
# 抄送人邮箱
acc = '123@sina.com'
# 邮件主题
asubject = '每日比价(' + str(datetime) + ')'
# 发件人地址
from_addr = "123@sin.com"
# 邮箱密码(授权码)
password = "******"
# 邮件设置
msg = MIMEMultipart()
msg['Subject'] = asubject
msg['to'] = areceiver
msg['Cc'] = acc
msg['from'] = "Jac"
# 邮件正文
body = "你好,这是一份测试邮件"
# 添加邮件正文:
msg.attach(MIMEText(body, 'plain', 'utf-8'))
# 添加附件 上传附件的代码
# 注意这里的文件路径是斜杠
xlsxpart = MIMEApplication(open('F:/0002-2-类目运营相关/3-比价表/0-1-Py爬价格/temp_jd_{0}.xlsx', 'rb').read())
xlsxpart.add_header('Content-Disposition', 'attachment', filename='temp_sn_2022-04-29.xlsx')
msg.attach(xlsxpart)
运行结果及报错内容
Traceback (most recent call last):
File "C:\Users\Jac\AppData\Roaming\JetBrains\PyCharm2021.1\scratches\hello.py", line 38, in <module>
xlsxpart = MIMEApplication(open(f'F:/0002-2-运营相关/3-比价表/0-1-Py爬价格/temp_jd_{0}.xlsx', 'rb').read())
FileNotFoundError: [Errno 2] No such file or directory: 'F:/0002-2-运营相关/3-比价表/0-1-Py爬价格/temp_jd_0.xlsx'
我想要达到的结果
直接把我爬出来的这些xlsx文件上传到页面