2016-04-07 3 views
0

Я пытаюсь добавить вложение электронной почты в Python, и я получаю сообщение об ошибке:Python ошибка файл вложения

IsADirectoryError: [Errno 21] Является ли директория: «/ Users/MyName/Desktop/Current Desktop/Папка»

Вот мой код:

file = "myfile.pdf" 
attachment = open("/Users/myname/Desktop/Current Desktop/Folder","rb") 

part = MIMEBase('application', 'octet-stream') 
part.set_payload((file).read()) 
encoders.encode_base64(part) 
part.add_header('Content-Disposition', "attachment; filename=%s" % file) 

Спасибо за помощь!

+0

является '/ Пользователи/MyName/Desktop/Current Desktop/Folder' каталог? Кажется, что это ... –

+0

Похоже, что вы пытаетесь прикрепить каталог. вы можете захотеть сначала заархивировать или архивировать его, а затем присоединить .. – karthikr

+0

это каталог, содержащий файл -myfile.pdf-, который я пытаюсь подключить. Я пытался написать путь к файлу для вложения. Наверное, я ничего не понимаю. – user3353890

ответ

1

Я думаю, что вы хотите что-то вроде

with open("/Users/myname/Desktop/Current Desktop/Folder/" + "myfile.pdf", "rb") as file: 

    part = MIMEBase('application', 'octet-stream') 
    part.set_payload(file.read()) 
    encoders.encode_base64(part) 
    part.add_header('Content-Disposition', "attachment; filename=%s" % file) 
+0

Это сработало отлично, спасибо! Единственное, что нужно было изменить: rb должно быть в кавычках вроде «rb». Помимо этого он работал безупречно! Я отвечу, когда смогу, через 3 минуты. – user3353890

+0

кричит, ты прав. –

+0

Без проблем! Легко исправить. Еще раз спасибо! – user3353890

Смежные вопросы