Python 邮件附件问题:子表文件路径错误
Python 邮件附件问题:子表文件路径错误
在使用 Python 发送邮件并附件子表文件时,如果出现运行结果都是 not found,但确实有对应的 Excel 表,可能是代码中文件路径的错误导致的。
问题在于代码中的字符串 'subtables_path' 应该是变量 subtables_path,因为前者是一个字符串常量,而后者才是存储子表文件夹路径的变量。
因此,应该将这行代码修改为:
excel_path = os.path.join(subtables_path, f'{pm_name}.xlsx')
这样就能正确地找到子表文件夹下的 Excel 文件,并将其作为附件添加到邮件中。
代码示例:
import os
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
subtables_path = r'C:\Users\LOH2HZ\Desktop\2023.6 email sending\SubTables' # 定义子表文件夹的路径
# ... 邮件内容设置 ...
for i, row in df.iterrows(): # 遍历 Excel 文件的每一行并附加相应的子表
pm_name = row['Project manager']
pm_email = row['Email address']
excel_path = os.path.join(subtables_path, f'{pm_name}.xlsx') # 修改后的代码
if os.path.exists(excel_path):
xlsxpart = MIMEApplication(open(excel_path, 'rb').read())
xlsxpart.add_header('Content-Disposition', 'attachment', filename=f'{pm_name}.xlsx')
msg.attach(xlsxpart)
else:
print(f'Subtable for {pm_name} not found')
# ... 发送邮件 ...
通过将代码中的 'subtables_path' 替换为变量 subtables_path,就可以正确地找到子表文件夹下的 Excel 文件,并将其作为附件添加到邮件中。
原文地址: https://www.cveoy.top/t/topic/oTQy 著作权归作者所有。请勿转载和采集!