【发布时间】:2014-08-13 14:57:40
【问题描述】:
我无法从此代码中获得输出,我猜它只是无限循环,它必须读取行并将这些行附加到名为 data 的列表中,但它没有给出输出,我做错了什么? 任何建议将不胜感激,在此先感谢。
import os
import subprocess
import commands
command = ['sudo', 'iwlist', 'wlan0', 'scan']
output = subprocess.Popen(command, stdout=subprocess.PIPE).stdout.readlines()
data = []
for item in output:
if item.strip().startswith('ESSID:'):
data = (item.lstrip('ESSID:').rstrip('\n'))
for item in output:
if item.strip().startswith('Quality:'):
data.append('Quality:')
for item in output:
if item.strip().startswith('Pairwise:'):
data.append('Pairwise:')
print data
【问题讨论】:
-
在
print output紧跟在readlines()之后,你看到了什么?另外,您的预期输出是什么样的? -
sudo 需要密码,所以
Popen永远不会返回 -
我现在正在检查@Cyber,没有命令在工作,问题出在 'ESSID:' 之后的循环
-
@Cyber 它以未成形的形式打印 iwlist,但它是“sudo iwlist wlan0 scan”的输出
标签: python loops for-loop subprocess stdout