Python: Comment puis-je enregistrer quelque chose qui a imprimé dans un terminal comme une variable de comparer plus tard?

StackOverflow https://stackoverflow.com/questions/5300134

  •  22-10-2019
  •  | 
  •  

Question

import imaplib
import pprint

IMAP_SERVER='imap.gmail.com'
IMAP_PORT=993

M = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT)
rc, resp = M.login('user@gmail.com', 'password')
print rc, resp

M.select()
for msg_num in M.search(None, "UNDELETED")[1][0].split():
    msg = M.fetch('1', '(BODY.PEEK[TEXT])') 
    print msg[1][0][1][139:161]

M.close()         
M.logout()

Je suis un nouveau débutant dans la programmation de python et le code python ci-dessus est un que j'utilise pour un programme que je veux faire. Quand je lance ce dans un terminal je reçois la réponse que j'ai authentifié mon compte et il affiche le message entre les caractères 139 et 161, qui est ce qui suit dans l'e-mail par exemple:

Ceci est juste un test ...

Il est imprimé dans le terminal. Ce que je veux faire est de prendre cette impression et le comparer à autre chose. Par exemple: si a = b alors x. Ce que je veux faire est que si l'affirmation est vraie pour envoyer un signal au port série.

Toute aide est appréciée et prévu grâce à tout ce qui aide ...

Était-ce utile?

La solution

Il suffit d'attribuer le message à une variable avant de l'imprimer:

for msg_num in M.search(None, "UNDELETED")[1][0].split():
    msg = M.fetch('1', '(BODY.PEEK[TEXT])') 
    a = msg[1][0][1][139:161]
    print a

# later..
if a == 'this is just a test...':
   # your code here
   pass

De toute évidence, vous devez utiliser un nom variable plus significative que "a".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top