python - Raspberry Pi Python 字符串未定义

标签 python raspberry-pi new-operator raspbian

你好,我今天正在编写一个新的 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 = 'user@emial.com'
FROM = 'pi@email.com'
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:。因此,您的 if 语句返回 False

if 'eth0:' in line:
    inet_line = ip_file.next()
    _time = time.asctime()
    inet_string = inet_line[9:(inet_line.index('/'))]

如果line中找到eth0:,则定义inet_line,否则不会定义,Python跳转到下一个代码块这是引发异常的地方。

text = 'The IP address is: %s' % inet_string

关于python - Raspberry Pi Python 字符串未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21237077/

相关文章:

image - Raspberry Pi 相机教程问题

java - 我可以使用 java 策略文件通过 sudo 安全地运行不受信任的应用程序吗

Python 在工作目录中打开 .txt 文件/更改时出现错误消息

bash - Raspberry Pi - 自动启动 OpenCv 脚本 - cv::imshow() 出错

ios - XCode iOS operator 新的自定义实现

eclipse - 如何在 Eclipse 中显示 SVG?

c++ - 运算符重载(尤其是 'new' )是如何工作的?

python - 没有名为 'watchdog.observers' 的模块; 'watchdog' 不是包

python - 生成间隔为 5 分钟的随机时间

python - 如何自定义显示在 Django 管理站点中的过滤器名称?