python - 如何捕获文件对象以便将其作为附件发送
问题描述
我无法捕获 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")
解决方案
推荐阅读
- reactjs - 在 React 中使用 Map 循环遍历数组抛出错误
- typescript - 未知的自定义元素:
- 您是否正确注册了组件? - php - PHP从接收到的输入更新json并写回同一个文件
- java - jhipster中通过id限制URL访问控制
- javascript - 当前时间和当前时间 + 10 分钟数
- leaflet - Leaflet geoman setLatLngs 未将对象恢复到 getLatLngs 位置
- mongodb - MongoDB中具有不同计数的双重聚合
- python - 在 PyCharm 中安装 python-snappy 时出错
- c# - 为生成的按钮 WinForms 添加 _Click 功能
- reactjs - 带有导入的 React 组件的无效挂钩调用