#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, команда не выполняется, из-за чего имя файла не определено