Python: Come si salva qualcosa che ha stampato in un terminale come una variabile per confrontare più tardi?
-
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 ...
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
".