Ошибка «путь к файлу не определен» с os.path.isfile?

#python-3.x #web-scraping

#python-3.x #очистка веб-страниц

Вопрос:

Я работаю над почтовым скребком, и, похоже, он выдает ошибку при попытке сохранить файлы из вложений электронной почты. Любые идеи будут высоко оценены!

Это та часть кода, в которой возникает ошибка:

   for part in email_message.walk():
            print("starting for part")
            print(part.get_payload())
            if part.get_content_maintype() == 'multipart' or part.get_content_maintype() == 'text':
                print("multipart selected")
                if part.get('Content-Disposition') is None or part.get('Content-Disposition') is 'inline':
                    print("content disposition is none or inline")
                    fileName = part.get_filename()
                    print("filename: ", str(fileName))

                    if bool(fileName):
                        print("valid filename")
                        filePath = os.path.join('/bm_data/ownCloud/BuildMapper/acquireddata/', fileName)
                    if not os.path.isfile(filePath):
                        print("os path is file is not")
                        fp = open(filePath, 'wb')
                        fp.write(part.get_payload(decode=True))
                        fp.close()
                        s3.meta.client.upload_file(filePath, S3_BUCKET, "newfilename")
  

и это сообщение об ошибке:

  Traceback (most recent call last):   File "emailscraper2020aug11.py", line 74, in <module>
    if not os.path.isfile(filePath):  NameError: name 'filePath' is not defined
  

Комментарии:

1. согласно ответу Абхиджита Гупты, вы должны определить переменную filepath перед циклом. просто сделайте его пустым или введите предопределенное значение, а затем замените значение внутри цикла. Используя простой шаблон накопителя.

Ответ №1:

Это связано с инструкцией if, команда не выполняется, из-за чего имя файла не определено