我正在使用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编程的新手。
谢谢
答案 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]
)。对于每一行x
,x.split('=')
返回一个列表,其中第一个元素是等号左边的字符串,第二个元素是右边的字符串。因此x.split('=')[1]
是右侧,x.split('=')[1][1:-1]
删除了第一个和最后一个(引用)字符。
这包含在一个生成器表达式中,该表达式生成内置any
函数的一系列参数,一旦遇到一个计算为true的参数,就会返回True
。
答案 1 :(得分:-4)
if "SSID2" in "ret[1].split("\n")[1]":
print "yes"