Raspberry PI编写CSV Python

时间:2017-04-18 11:56:04

标签: python csv raspberry-pi

作为项目的一部分,我正在尝试使用Raspberry PI来捕获WiFi网络并将其写入CSV文件。如果信号质量超过30/70,我想捕获所有WiFi SSID及其相关的MAC地址并进行记录。 问题似乎是相关的语法,但我似乎无法弄清楚出了什么问题。

<html>

<head>
  <title>Band Site| Home</title>
  <link rel="stylesheet" href="band.css">
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>

<body>
  <div id="message" style="display:none;">welcome to my website</div>


  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script type="text/javascript" src="js/init.js"></script>
</body>

</html>

更新1: This is the output that I am looking to capture from: 更新2: This is what happens with the updated code and the results out.

1 个答案:

答案 0 :(得分: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中的正则表达式:https://docs.python.org/2/howto/regex.html