python脚本中的转义符号

python脚本中的转义符号,python,Python,我为我的rpi项目写了一些自动化python脚本。。。下面是脚本的一部分: import socket import sys import platform import uuid import psutil import subprocess import os import RPi.GPIO as GPIO import time from subprocess import call def measure_temp(): temp = os.popen("vcgencmd

我为我的rpi项目写了一些自动化python脚本。。。下面是脚本的一部分:

import socket
import sys
import platform
import uuid
import psutil
import subprocess
import os
import RPi.GPIO as GPIO
import time
from subprocess import call
def measure_temp():
        temp = os.popen("vcgencmd measure_temp").readline()
        return (temp.replace("temp=","").replace("'C\n",""))

while True:
        print
        print 'Hostname:' +socket.gethostname()
        print 'Machine :' +platform.machine()
        print
        print 'CPU Usage:'
        print(psutil.cpu_percent())
        print
        print 'MEM Usage:'
        print(psutil.virtual_memory().percent)
        print
        print 'Disk Usage:' 
        print(psutil.disk_usage('/').percent)
        print
        print 'CPU Temp:'
        if measure_temp() == "50.1":
          GPIO.setmode(GPIO.BCM)
          GPIO.setwarnings(False)
          GPIO.setup(22,GPIO.OUT)
          print "Fan on"
          GPIO.output(22,GPIO.HIGH)
          time.sleep(50)
          print "Fan off"
          GPIO.output(22,GPIO.LOW)
          time.sleep(10)
          GPIO.cleanup()
        print(measure_temp())
        time.sleep(10)
        os.system('clear')
print 'end'
我的问题是:

if measure_temp() == "50.1": 
我希望在第一个数字之后转义所有符号,如下所示:

if measure_temp() == "5\": 
但它不起作用。如何解决此问题?

measure\u temp()
似乎返回一个字符串。我将首先将其转换为
float
类型,然后检查该值是否大于50

if float(measure_temp()) >= 50:
    # Your code

您需要确保
measure\u temp
始终返回一个可以转换为浮点的字符串。

您可以将
measure\u temp()
替换为以下内容,即返回
float
,这更容易处理:

def measure_temp():
        temp = os.popen("vcgencmd measure_temp").readline()
        try :
                t = re.findall( r'temp=([\d\.]+)', temp )
                t = float(t[0])
        except :    # something went wrong
                print 'unable to convert the temperature:', temp
                t = 20.0   # room temperature
                pass
        return t
并在文件开头的某个位置重新导入

完成后,您可以将温度值与数字进行比较,如
如果温度>50
或其他


如果您想知道,您最近的更改“if float(measure_temp())>=50:”最终将在
vcgencmd
暂停或返回空字符串或无法轻松转换为
float
的内容时中断,您应该处理异常以使脚本平稳运行。

关于
if float(measure_temp>)的情况如何())>=50
您需要确保
measure\u temp
始终返回可以转换为浮点的字符串。在大多数语言中
"
字符用于标识字符串/文本。在python中声明小数似乎只是
50.1
@bradbury9
measure\u temp
返回字符串第一个数字后转义所有符号是什么意思?你能更好地解释一下你想要实现什么吗?@Chris,非常感谢,我需要时间来了解这个web是如何实现的工作…正确使用它。。。