Вызов функций во вложенных операторах if - PullRequest
0 голосов
/ 25 марта 2020

Я учился пару месяцев и сейчас пытаюсь сделать вещи более эффективными. Для приведенного ниже кода я также хотел бы отправить электронное письмо, если IP-адрес не изменился с другим телом, например, я попытался добавить отдельный body_text с другим сообщением и попытался создать другую функцию для отправки электронного письма, если IP-адрес не изменился ,

Любые мысли о том, как подойти к этому, были бы полезны, поскольку у меня есть пара других сценариев, с которыми я хотел бы сделать подобные вещи. В конце концов добавим oauth, чтобы сделать более безопасным

from urllib.request import urlopen
import re
import  smtplib


from_address = ''
to_address = ''
subject = 'IP'
username = ''
password = ''

url = 'http://checkip.dyndns.org'
print ("Our chosen IP address service is ", url)
request = urlopen(url).read().decode('utf-8')
ourIP = re.findall("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", request)
ourIP = str(ourIP)
print ("Our IP address is: ", ourIP)


def send_email(ourIP):
# Body of the email
    body_text = ourIP + ' is my address'
    msg = '\r\n'.join(['To: %s' % to_address, 'From: %s' % from_address, 'Subject: %s' % 
    subject, '', body_text])
    # Send email!
    server = smtplib.SMTP('smtp.gmail.com:587')
    server.starttls() # Our security for transmission of credentials
    server.login(username,password)
    server.sendmail(from_address, to_address, msg)
    server.quit()
    print ("Email has been sent!")
# Open text file and extract contents
with open('last_ip.txt', 'rt') as last_ip:
    last_ip = last_ip.read() # Read the text file

# Check to see if our IP address has really changed

if last_ip == ourIP:
    print("Our IP address has not changed.")

else:
    print ("We have a new IP address.")
    with open('last_ip.txt', 'wt') as last_ip:
        last_ip.write(ourIP)
print ("We have written the new IP address to the text file.")
send_email(ourIP)

1 Ответ

0 голосов
/ 27 марта 2020

Закончил перемещать вещи и использовал это вместо:

def send_email(ourIP,last_ip):

if last_ip == ourIP:
    print("Our IP address has not changed.")
    body_text = ourIP + ' is still the same'

else:
    body_text = ourIP + ' is different'
    print ("We have a new IP address.")
    with open('last_ip.txt', 'wt') as last_ip:
        last_ip.write(ourIP)
    print ("We have written the new IP address to the text file.")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...