我得到的错误是:
- IOError:[Errno 2]没有这样的文件或目录:'Users / nithinpathak / Documents / Automate / attachments / Payment Advice Note from 06/28 / 2018.PDF'。我知道该错误是因为python无法检测到文件。但不确定代码的哪一部分是错误的
我正在使用以下代码下载附件
import imaplib, email, os
map_url = 'imap.gmail.com'
attachment_dir='Users/nithinpathak/Documents/Automate'
con = imaplib.IMAP4_SSL(imap_url)
con.login(user, password)
con.select('INBOX')
result, data = con.fetch(b'11', '(RFC822)')
raw = email.message_from_string(data[0][1])
get_attachments(raw)
def get_attachments(msg):
for part in msg.walk():
if part.get_content_maintype()=='multipart':
continue
if part.get('Content-Disposition') is None:
continue
fileName = part.get_filename()
if bool(fileName):
filePath = os.path.join(attachment_dir, 'attachments', fileName)
if not os.path.isfile(filePath):
print fileName
fp = open(filePath, 'wb')
fp.wirte(part.get_payload(decode=True))
fp.close()
答案 0 :(得分:0)
在Python中,即使路径名中的斜杠始终被解释为目录定界符,即使在Windows中也是如此,后者使用反斜杠作为目录定界符。因此,文件名Payment Advice Note from 06/28/2018.PDF
被解释为Payment Advice Note from 06/28
子目录下的文件2018.PDF。您应该简单地将其重命名为没有斜杠的内容。