Как поймать файл объекта, чтобы его можно было отправить как вложение - PullRequest
0 голосов
/ 30 апреля 2020

Я не могу поймать f - файл, который является файлом результата, который мне нужен, чтобы pu sh как приложение, которое он показывает, не может найти путь. Я даже пытался вытащить путь вручную, но затем, если я запустил эту программу более одного раза, она могла бы выбрать другой файл результатов

Импорт библиотек и загрузить тестовые файлы:

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)

После чтения Тестовый файл. Формат для файла результатов создается с указанными ниже тремя столбцами

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")
...