【问题标题】:How do I only record certain values to CSV?如何仅将某些值记录到 CSV?
【发布时间】:2019-07-25 19:08:09
【问题描述】:

我是 python 新手,如果这是一个超级简单的问题,请原谅我。我目前有一个 arduino 通过串口发送 3 个值。在此之后,它被解码和拆分。如果值 1 高于 120,我只想将一行值记录到 csv。每当我尝试这样做时,代码都会立即中断。谢谢。

import serial
import csv


Finger = "1"
ser = serial.Serial('COM6', 9600)

while True:
    try:
        data = ser.readline()
        decode = (data[0:len(data)-2].decode("utf-8"))
        datasplit = decode.split('-')
        Val1 = datasplit [0]
        Val2 = datasplit [1]
        Val3 = datasplit [2]
        print(Val1)
        with open("EMGSig16.csv","a") as f:
            writer = csv.writer(f,delimiter=",")
            if Val1 >= 120:
                writer.writerow([Finger,Val1,Val2,Val3])
            else:
                continue
    except:
        break

编辑:抱歉延迟回复(我在第三班工作)。这是我没有阈值的正常值的屏幕截图 Normal Value 1。当我重新添加阈值时,我得到了这个With Threshold

【问题讨论】:

  • 您应该打印或记录您的错误,它可能会对您和读者有所帮助。您可以使用except Exception as e: print(e) 来完成。也许,您有一个错误,因为 Val1 不是 int 并且比较失败。要转换,请执行int(datasplit[0])
  • 你能打印所有的 Vals 吗?然后用输出编辑问题。或打印和编辑错误回溯问题。
  • 也许 datasplit 变量存储了 str 类型的值。请输入 type(Val1) 进行检查
  • @ndclt 我已经尝试过这种方法,结果与我之前的尝试相同。
  • @MadhurYadav 是的!变量是 str 类型的值,但是当我按照上面的建议使用 int(datasplit[0]) 时,我仍然得到相同的结果。

标签: python python-3.x csv file-writing


【解决方案1】:

我只是随机删除了 Try and Exception,因为我认为这可能会破坏代码并且它起作用了!没有解释为什么,但如果其他人有这个问题,这是我的最终代码:

import serial
import csv


Finger = "1"
ser = serial.Serial('COM6', 9600)

while True:
        data = ser.readline()
        decode = (data[0:len(data)-2].decode("utf-8"))
        datasplit = decode.split('-')
        Val1 = int(datasplit[0])
        Val2 = int(datasplit[1])
        Val3 = int(datasplit[2])
        print(Val1)
        if Val1 >= 100:
            with open("EMGSig17.csv","a") as f:
                writer = csv.writer(f,delimiter=",")
                writer.writerow([Finger,Val1,Val2,Val3])
        else:
            continue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 2019-09-16
    • 2023-03-07
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多