如何比较python中的字符串

时间:2017-08-27 09:23:17

标签: python

我正在使用python 2.7。我正在使用python运行linux命令,打印出可用的wifi ssid。我需要比较我尝试连接的ssid是否可用。我使用下面的命令来打印ssid:

import commands
ret = commands.getstatusoutput("sudo iwlist wlan0 scan | grep ESSID")
print(ret)

#output:    
(0, ESSID="SSID1"\n
    ESSID="SSID2"\n
    ESSID="SSID3")

如果我打印print(ret[1]),则会给出以下输出:

    ESSID="SSID1"
    ESSID="SSID2"
    ESSID="SSID3"

假设我正在尝试连接到SSID2,我怎样才能将其置于检查SSID2此时是否可用的状态。像if ret[1] == "SSID2"这样的东西。我是python编程的新手。

谢谢

2 个答案:

答案 0 :(得分:4)

ret[1]是换行符分隔的字符串。每行都有一个等号。当True出现在任何等号的右侧时,您需要一个评估为"SSID2"的表达式。

data = '''\
ESSID="SSID1"
ESSID="SSID2"
ESSID="SSID3"'''
if any(x.split('=')[1][1:-1]=="SSID2" for x in data.splitlines()):
    print("yes")

data.splitlines()会返回data中的一系列行(您可以使用ret[1])。对于每一行xx.split('=')返回一个列表,其中第一个元素是等号左边的字符串,第二个元素是右边的字符串。因此x.split('=')[1]是右侧,x.split('=')[1][1:-1]删除了第一个和最后一个(引用)字符。

这包含在一个生成器表达式中,该表达式生成内置any函数的一系列参数,一旦遇到一个计算为true的参数,就会返回True

答案 1 :(得分:-4)

if "SSID2" in "ret[1].split("\n")[1]":
    print "yes"