将数据从python脚本管道传输到.csv或.txt文件中

问题描述 投票:0回答:1

我想监视我公寓内的空气质量(楼下的邻居是一个狂热的吸烟者)。为此,我将Raspberry Pie 3 Model B +与Enviro +连接。

虽然在终端机中,我可以运行用于测量小颗粒的脚本。python particulates.py参见。https://github.com/pimoroni/enviroplus-python/blob/master/examples/particulates.py

然后它运行并在终端中显示数据,如下图所示:(是的,我更乐于学习,而不是编码)。 “文本”

我有兴趣在文本文件或csv中记录数据,因此我在考虑是否有一种方法可以将屏幕上显示的数据直接传输到csv或txt文件中。我知道,我可能可以编写一个简单且精巧的Python脚本,但是我听到了Linux的许多赞誉,我想尝试一下。此外,我在一个论坛上看到:

Awk

Sed是您的Shell脚本朋友。在Linux中,所有内容都是文件,Awk和Sed可以写入/编辑文件。每个Linux操作系统附带的可怕的旧东西都可以使用。

如果使用Web服务器,则不需要所有x11桌面膨胀功能,只需一个无头的Linux操作系统。轻松将所有这些安装在128MB卡上。Busybox有一个Web服务器,或者您可以从许多选项中进行选择。我使用Shell脚本和Awk / Sed即时重写CGI / HTML文件。

来源:https://www.raspberrypi.org/forums/viewtopic.php?t=248733

我在终端中输入了以下内容:

python Particulates.py > data.csv

我也尝试过:

python Particulates.py | data.csv

数据显示在屏幕上,创建了一个csv文件,但是两个选项的data.csv为空。如果我的理解是正确的,则需要将particles.py的标准输出放入data.csv。那里应该缺少一些东西,因为,我得到的与这位awk / sed倡导者在论坛上做广告的目标相去甚远。

任何线索,我如何完成这项工作?如果要绘制结果,我应该使用gnuplot吗?我可以在同一行中使用它吗,例如在管道链中使用?

谢谢您的帮助。

我想监视我公寓内的空气质量(楼下的邻居是一个狂热的吸烟者)。为此,我将Raspberry Pie 3 Model B +与Enviro +连接。在终端中,我可以运行...

python shell csv pipe raspberry-pi3
1个回答
0
投票

检查库代码https://github.com/pimoroni/pms5003-python/blob/master/library/pms5003/init.py#L66以了解每一列中包含哪些值:

    def __repr__(self):
        return """
PM1.0 ug/m3 (ultrafine particles):                             {}
PM2.5 ug/m3 (combustion particles, organic compounds, metals): {}
PM10 ug/m3  (dust, pollen, mould spores):                      {}
PM1.0 ug/m3 (atmos env):                                       {}
PM2.5 ug/m3 (atmos env):                                       {}
PM10 ug/m3 (atmos env):                                        {}
>0.3um in 0.1L air:                                            {}
>0.5um in 0.1L air:                                            {}
>1.0um in 0.1L air:                                            {}
>2.5um in 0.1L air:                                            {}
>5.0um in 0.1L air:                                            {}
>10um in 0.1L air:                                             {}
""".format(*self.data[:-2], checksum=self.checksum)
© www.soinside.com 2019 - 2024. All rights reserved.