2017-01-19 4 views
0

Я пробовал разные сценарии python для загрузки вставки CSV из Gmail. Но я не мог это получить. Это возможно. Если возможно, какой скрипт python я должен использовать? Спасибо.Загрузите файл csv из gmail с помощью python

+0

Посмотрите на пакет 'request' python. Его простота в использовании и охватывает большинство случаев. – BigZ

+0

Благодарим за отзыв – Kanishka

ответ

0

У меня есть. Это не моя работа. Я получил некоторые коды, объединил их и изменил этот код. Однако, наконец, это сработало.

print 'Proceeding' 

import email 
import getpass 
import imaplib 
import os 
import sys 

userName = '[email protected]' 
passwd = 'yourpassword' 
directory = '/full/path/to/the/directory' 


detach_dir = '.' 
if 'DataFiles' not in os.listdir(detach_dir): 
    os.mkdir('DataFiles') 



try: 
    imapSession = imaplib.IMAP4_SSL('imap.gmail.com') 
    typ, accountDetails = imapSession.login(userName, passwd) 
    if typ != 'OK': 
     print 'Not able to sign in!' 
     raise 

    imapSession.select('[Gmail]/All Mail') 
    typ, data = imapSession.search(None, 'ALL') 
    if typ != 'OK': 
     print 'Error searching Inbox.' 
     raise 


    for msgId in data[0].split(): 
     typ, messageParts = imapSession.fetch(msgId, '(RFC822)') 
     if typ != 'OK': 
      print 'Error fetching mail.' 
      raise 

     emailBody = messageParts[0][1] 
     mail = email.message_from_string(emailBody) 
     for part in mail.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(detach_dir, 'DataFiles', fileName) 
       if not os.path.isfile(filePath) : 
        print fileName 
        fp = open(filePath, 'wb') 
        fp.write(part.get_payload(decode=True)) 
        fp.close() 
    imapSession.close() 
    imapSession.logout() 

    print 'Done' 


except : 
    print 'Not able to download all attachments.' 
Смежные вопросы