- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个 Python 脚本,用于从 Raspberry Pi Astro“Sense Hat”传感器进行磁场测量。它被称为“mag-AstroPi.py”:
#!/usr/bin/python
from sense_hat import SenseHat
sense = SenseHat()
raw = sense.get_compass_raw()
#print(x: {x}, y: {y}, z: {z}.format(**raw))
#alternatives
print(sense.compass_raw)
这是 Sense Hat 制造商 element14 提供的脚本。
该脚本以微特斯拉为单位输出三个轴(X、Y 和 Z)的磁场数据,以及一堆额外字符:
pi@raspberrypi ~ $ python mag-AstroPi.py
{'y': 13.895279884338379, 'x': -1.1642401218414307, 'z': -0.4132799804210663}
我需要删除多余的字符,将这些值乘以 1,000,以便将它们转换为纳特斯拉(我的特定应用程序的标准 SI 单位),然后将相乘的值与日期和时间一起记录到文件中。这需要每两秒发生一次。
我希望有三个独立的日志文件 - 一个用于 X 轴,一个用于 Y 轴,一个用于 Z 轴。不过,目前我只处理 Y 轴数据。一旦 Y 轴数据记录工作正常,我就可以复制和更改其他两个轴。
所以我编写了一个 bash 脚本 AstroPiMagLogger.sh,它在启动时通过 cron 作业运行:
#!/bin/bash
while true
do
echo $(python mag-AstroPi.py -n | grep "y" | cut -d " " -f2 | cut -c 1-18 | sed 's/$/*1000/' | bc; date +"%Y,%m,%d,%T,%Z") >> rawysecnT.txt
sleep 2
done
此应该仅提取 Y 轴值,将其乘以 1,000,然后将其与当前日期、时间和时区一起保存到新的文本文件 rawysecnT.txt 中。
它可以工作,有点...这是 rawysecnT.txt 的内容:
13703.761100769043000 2015,09,14,08:56:41,UTC
13703.761100769043000 2015,09,14,08:56:44,UTC
13613.041877746582000 2015,09,14,08:56:46,UTC
13794.480323791504000 2015,09,14,08:56:49,UTC
13804.560661315918000 2015,09,14,08:56:52,UTC
13875.120162963867000 2015,09,14,08:56:55,UTC
13633.201599121094000 2015,09,14,08:56:58,UTC
2015,09,14,08:57:00,UTC
2015,09,14,08:57:03,UTC
13744.080543518066000 2015,09,14,08:57:06,UTC
14016.241073608398000 2015,09,14,08:57:09,UTC
如您所见,它在大多数情况下都有效。但有时,它不会将磁场测量结果记录到文件中;而是将磁场测量值记录到文件中。它只记录日期和时间。
今天早些时候,我的记录工作正常,但那是在我添加将磁数据乘以 1000 的代码之前(即今天早些时候,脚本仅记录以微特斯拉为单位的原始磁数据,以及日期/时间)。我有几个小时的这样的数据,没有任何错误,所以很明显我在添加磁性测量乘法代码时塞满了一些东西。我决定直接在命令行中运行以下命令(而不是通过脚本),以便进行调试。
echo $(python mag-AstroPi.py -n |grep "y" | cut -d " " -f2 | cut -c 1-18 | sed 's/$/*1000/' | bc; date +"%Y,%m,%d,%T,%Z")
不出所料,这工作了大约十几次,并将以下输出打印到终端,这正是我想要的:
14167.440414428711000 2015,09,14,09:07:30,UTC
然后,最后一次,它返回了以下错误:
(standard_in) 1: syntax error
2015,09,14,09:07:59,UTC
鉴于该错误是间歇性的,而且我对编程相当陌生(我只接触了大约一个月),我不知道可能是什么问题。
如果有人能想到为什么这种方法在大部分时间但并非总是有效,我将不胜感激。
<小时/>评论中要求的两个示例输出如下:
pi@raspberrypi ~ $ python mag-AstroPi.py -n | grep "y" | cut -d " " -f2 | cut -c 1-18 | sed 's/$/*1000/' | bc; date +"%Y,%m,%d,%T,%Z"
14076.720237731934000 2015,09,14,09:53:33,UTC
pi@raspberrypi ~ $ python mag-AstroPi.py -n
{'y': 13.935601234436035, 'x': -1.506960153579712, 'z': 0.24192002415657043}
最佳答案
看起来您想要做的事情可以(并且几乎肯定应该)在 Python 脚本本身内完成。 get_compass_raw()
返回一个字典,因此您可以直接提取 y
值(并乘以 1000):
raw = sense.get_compass_raw()
y_component_nT = raw['y'] * 1000
要添加时间戳,我将使用内置的 datetime
模块:
from datetime import datetime
now = datetime.now()
然后,您可以使用 now.strftime(format)
将时间格式化为您想要的格式,其中 format
是按 the docs 所示构建的格式字符串。 .
我将把用 python 写入文件并暂停执行的挑战留给您 - 本网站和其他地方的许多好的答案已经涵盖了这些挑战。
关于python - bash 脚本中的间歇性语法错误涉及 echo、python 脚本、grep、sed、bc 和 date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32561203/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!