Raspberry PI编写CSV Python

Raspberry PI编写CSV Python,python,csv,raspberry-pi,Python,Csv,Raspberry Pi,作为一个项目的一部分,我正在尝试使用树莓PI来捕获WiFi网络并将其写入CSV文件。如果信号质量超过30/70,我想捕获所有WiFi SSID及其相关MAC地址并记录下来。 这个问题似乎与语法有关,但我似乎无法找出错误所在 def wifiscan(): ssid = [] scanoutput = check_output(["iwlist", "wlan0", "scan"]) curtime = time.strftime("%I:%M:%S") ssid.

作为一个项目的一部分,我正在尝试使用树莓PI来捕获WiFi网络并将其写入CSV文件。如果信号质量超过30/70,我想捕获所有WiFi SSID及其相关MAC地址并记录下来。 这个问题似乎与语法有关,但我似乎无法找出错误所在

def wifiscan():
    ssid = []
    scanoutput = check_output(["iwlist", "wlan0", "scan"])
    curtime = time.strftime("%I:%M:%S")
    ssid.append(curtime)

    for line in scanoutput.split():
      line=str(line)
      if line.startswith("Quality"):
        line=line[8:-25]
      if(line>30 and line.startswith("ESSID")
        line=line[7:-1]
        ssid.append(line)
    with open('/home/pi/Desktop/Project/Results/'+'test.csv','a') as csvfile:
        csvwriter = csv.writer(csvfile,delimiter=',')
        csvwriter.writerow(ssid)
    print ssid
更新1: 更新2:
我对您的代码做了一些更改,但我不知道您想要完成什么,也不知道您遇到了什么错误,我只是在sintax中修复了一些逻辑

实际上,只有在质量高于30时,代码才会将ssid数据附加到csv中

如果这是你想要的,请告诉我

def wifiscan():
    ssid = []
    scanoutput = check_output(["iwlist", "wlan0", "scan"])
    curtime = time.strftime("%I:%M:%S")
    ssid.append(curtime)
    quality = 0
    essid = ""
    for line in scanoutput.split('\n'):
      line=str(line)
      if line.startswith("Quality"):
        quality=int(line[8:-25])

      if quality>30 and line.startswith("ESSID"):
        line=line[7:-1]
        ssid.append(quality)
        ssid.append(line)
        with open('/home/pi/Desktop/Project/Results/'+'test.csv','a') as csvfile:
            csvwriter = csv.writer(csvfile,delimiter=',')
            csvwriter.writerow(ssid)
    print ssid
请注意,对于您提供的输入的sintax中的任何更改,代码都是合理的


另外,为了避免输入中的语法更改问题,也许您应该阅读python中的正则表达式:

if(line>30…是什么意思?您可能是指
len(line)
?我正在检查质量,因此如果它输出为32/70,它将被记录为大于30。另外,在line中:
if(line>30和line.startswith(“ESSID”)
您缺少一个右括号和冒号。也许您可以提供一个
scanoutput
的示例。您好,谢谢。这似乎只是打印时间戳,因此质量从未被指定值。我忘记添加
ssid.append(质量)
,我现在更改了它更新代码以删除split中的参数,但是留下了以下错误。回溯(最近一次调用):文件“/home/pi/Desktop/Project/code/projectCodeNew.py”,wifiscan()文件“/home/pi/Desktop/Project/code/projectCodeNew.py”第31行,wifiscan quality=int(第[8:-25]行)ValueError:以10为基数的int()的文本无效:“”抱歉,拆分不是错误,我只是忘记了附加,如果您可以以文本格式发送输入(可能执行
打印(scanoutput)
并复制它)这将有助于测试代码。感谢您的帮助。我已经更新了主要问题中的照片,以显示它所说的内容。当我使用带有('/n')的拆分时,不会显示任何内容,但是当我删除它时,它会运行,但只输出质量。