首页 > 解决方案 > 如何捕获文件对象以便将其作为附件发送

问题描述

我无法捕获 f - 文件,这是我需要作为附件推送的结果文件,它显示无法找到路径。我什至尝试手动拉出路径,但是如果我多次运行该程序,它可能会选择其他一些结果文件

导入库和上传测试文件:

import urllib.request
import csv
import win32com.client as win32
c=0
data=open("test.csv",encoding='utf-8')
csv_data=csv.reader(data)
data_lines=list(csv_data)
f=open('result.csv','w',newline='',encoding='utf-8')
thewriter=csv.writer(f)

读取测试文件后,使用下面提到的 3 列创建结果文件格式

thewriter.writerow(['server','URL','Result'])

for row in data_lines:
    try:
        webUrl  = urllib.request.urlopen(str(row[1]))
        p=int(webUrl.getcode())
        if p==200:
            thewriter.writerow([row[0],row[1],'Success'])
            c+=1
            print(c,'Done')

    except ConnectionResetError:
        thewriter.writerow([row[0],row[1],'Connection Failed'])
        c+=1
        print(c,'Done')

    except:
        thewriter.writerow([row[0],row[1],'URL Failed'])
        c+=1
        print(c,'Done')

到目前为止,已插入 url 状态,现在将以下代码发送到邮件:

outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'E-mail'
mail.Subject = 'TEST'
mail.Body = 'This is a test'

这就是问题所在

attachment  = r'f'
mail.Attachments.Add(attachment)
mail.Send()
f.close()
data.close()
print("Process completed")

标签: pythonpython-3.xemailsmtpexport-to-csv

解决方案


推荐阅读