你好,我今天正在研究一個新的python腳本,我遇到了這個錯誤。林有點困惑,再加上是腳本新手我不知道如何定義此代碼。任何幫助將是美好的。謝謝Raspberry Pi Python字符串沒有定義
錯誤
File "newipemail.py", line 25, in <module>
text = 'The IP address is: %s' % inet_string
NameError: name 'inet_string' is not defined
腳本
#!/usr/bin/python
import subprocess
import smtplib
import string
import time
FIXED_IP = '10.10.2.10'
ipaddr_string = 'ip -4 addr > ~/current_ip.txt'
subprocess.call(ipaddr_string, shell=True)
ip_file = file('current_ip.txt', 'r')
for line in ip_file:
if 'eth0:' in line:
inet_line = ip_file.next()
_time = time.asctime()
inet_string = inet_line[9:(inet_line.index('/'))]
if inet_string != FIXED_IP:
print 'Found eth0: %s' % inet_string
SUBJECT = 'IP Address from Raspberry Pi at: %s' % time.asctime()
TO = '[email protected]'
FROM = '[email protected]'
text = 'The IP address is: %s' % inet_string
BODY = string.join((
'From: %s' % FROM,
'To: %s' % TO,
'Subject: %s' % SUBJECT,'',text), '\r\n')
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.login('email.server.com', 'password')
server.sendmail(FROM, [TO], BODY)
server.quit()
ip_file.close()
你確定你的文件current_ip.txt中有「eth0:」嗎? – Ernst
只有在文件中找到* eth0:*時,纔會定義變量'inet_string'。該錯誤表明該變量未定義,這意味着文件可能在'inet_line = ip_file.next()'行後面不包含* eth0:* – bvidal
,請檢查inet_line的值是否與print(inet_line) '。這會給你線索,爲什麼'inet_string'沒有定義 – joaquin