【问题标题】:How do I read and analyse csv files in micropython?如何在 micropython 中读取和分析 csv 文件?
【发布时间】:2021-09-27 12:25:41
【问题描述】:

我正在设置一个 Raspberry Pi Pico,以将温度、湿度等记录到 csv 文件中,并在小型 OLED 屏幕上显示数据。每隔一小时,它就会在文件中记录一行以逗号分隔的新数据。

我希望能够显示最大和最小记录值以及最近的记录值,但我在使用 micropython 将文件解析为文本以外的任何内容时遇到了真正的麻烦。

Micropython 没有 csv 模块,我可以使用 split 通过分隔符 (,) 分隔值,但我不知道如何使用文件中存在的 (\n) 字符将其排列成行,我不知道'不知道我如何轻松查询特定列中的最小值和最大值。我非常感谢您的意见。对任何天真表示歉意,我对编码很陌生。

编辑:下面是我多次尝试将数据解释为可以查询的数组的失败尝试之一。非功能性的“.line.split("\n")” 试图在“split(",")”之后的输出中显示换行符。

file = open('data45713.csv', 'r')
dataset = file.read().split(",").line.split("\n")
print (dataset)
file.close()

【问题讨论】:

  • 仅供参考,通用 CSV 文件可以在字段中包含分隔符或 \n。也许您可以排除这些情况,让自己的生活更简单?
  • 请将您诚实尝试解决此问题的代码编辑为minimal reproducible example。包括导入和一些示例数据,显示产生的输出以及为什么这不是您需要/期望的。

标签: python csv max micropython raspberry-pi-pico


【解决方案1】:

你可以直接打开文件,然后在分隔符,处分割

csvdata = []
delim = ','
with open('<File.csv>','r') as file:
    for line in file:
        csvdata.append(line.rstrip('\n').rstrip('\r').split(delim))

【讨论】:

  • 如果字段包含分隔符,这是否可行,这当然是可能的和有效的?
  • 这会逐行读取,并摆脱新的行语法。这样可以确保每一行都有数据,并且逗号是分隔符。您可以根据需要进行修改。但这应该适用于每个格式正确的 CSV 文件。
  • “格式正确”的 CSV 文件可以在字段中包含逗号和 \n(即它们可以跨多行分布)。所以不,您的代码无法处理通用 CSV。
  • eatmeimadanish 谢谢。这给了我一个列表列表。我的下一步是学习如何在 i =
  • 温和,我已经确保我的数据不包含 \n, 除非作为分隔符,所以我对这个解决方案很满意。
猜你喜欢
  • 2019-05-07
  • 2021-03-21
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多