@stulevtoday
Дурак, глупо, но самокритично.

Программа на Python'e скачивает файлы с почты, но при скачивании zip-файла возникает ошибка, в чём проблема?

import imaplib
import base64
import os
import email

email_user = 'mail@mail.ru'
email_pass = 'pass'

mail = imaplib.IMAP4_SSL('imap.mail.ru')

mail.login(email_user, email_pass)

mail.select('inbox')

type, data = mail.search(None, 'ALL')
mail_ids = data[0]
id_list = mail_ids.split()

def f(part):
    fileName = part.get_filename()
    print(fileName)
    if bool(fileName):
        filePath = os.path.join('datafiles/', fileName)
        if not os.path.isfile(filePath):
            fp = open(filePath, 'wb')
            fp.write(part.get_payload(decode=True))
            fp.close()

for num in reversed(data[0].split()):
    fl = False
    typ, data = mail.fetch(num, '(RFC822)' )
    raw_email = data[0][1]

    raw_email_string = raw_email.decode('utf-8')
    email_message = email.message_from_string(raw_email_string)

    for part in email_message.walk():
        if part.get_content_maintype() == 'multipart':
            continue
        if part.get('Content-Disposition') is None:
            continue

        for response_part in data:
            if isinstance(response_part, tuple):
                msg = email.message_from_string(response_part[1].decode('utf-8'))
                email_from = msg['from']

        if email_from.find('avto-ms') != -1 and 'avto-ms' not in l:
            print('a', email_from)
            f(part)

Код программы, соответственно.
Сама ошибка: fp = open(filePath, 'wb')
OSError: [Errno 22] Invalid argument: 'datafiles/=?utf-8?B?cm9zc2tvX3ByaWNlLnppcA==?='
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
перекодируй файл в rossko_price.zip и его в аргумент
ты ж видимо путь формируешь с учетом имени файла
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект