Python: Come si salva qualcosa che ha stampato in un terminale come una variabile per confrontare più tardi?

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

  •  22-10-2019
  •  | 
  •  

Domanda

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()

Sono un nuovo principiante in programmazione Python e il codice Python di cui sopra è quella che sto usando per un programma che voglio fare. Quando ho eseguito questo in un terminale ottengo la risposta che ho autenticato il mio conto e poi si visualizza il messaggio tra i caratteri 139 e 161, che è il seguente nell'esempio email:

Questa è solo un test ...

Questo viene stampato nel terminale. Quello che voglio fare è prendere questa stampa e confrontarlo con qualcos'altro. Ad esempio: se a = b allora X. Quello che voglio fare è che se l'affermazione è vera per inviare un segnale alla porta seriale.

Ogni aiuto è apprezzato e atteso grazie a tutti che aiutano ...

È stato utile?

Soluzione

È sufficiente assegnare il messaggio a una variabile prima di stamparlo:

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

Ovviamente, è necessario utilizzare un nome di variabile più significativa di "a".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top