python - 在 python 脚本中运行 bash 命令 X 秒

标签 python raspberry-pi gpsd

我有一个 gps 连接到我的 raspberry pi,我正试图用它来对来自传入相机的照片进行地理标记。通过发出命令“gpsd -nND2/dev/ttyUSB0”,我可以获得连续 gps 数据的 bash 回显输出,稍后可以对其进行解析。然而,我只需要平均 10 个左右的数据点(在 10 秒内收集),然后想关闭 gpsd。

我的一般游戏中时光倒流程序是用 python 编写的,所以这是我目前拥有的:

(stdout, stderr) = Popen(["gpsd","-nND2,"/dev/ttyUSB0"], stdout=PIPE).communicate()

不幸的是,这会向变量stdout 输出无限数量的我无法解析的数据点。输出很像一个永无止境的 ping 程序。如何停止数据收集以进行合理/可解析的数据转储?

感谢您的帮助。

最佳答案

根据 the docs ,您应该查看控制台输出,而是使用 gps<b>d</b>作为一个 daemon,通过 TCP 与其通信:

Client applications will communicate with gpsd via a TCP/IP port, 2947 by default).

关于python - 在 python 脚本中运行 bash 命令 X 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240966/

相关文章:

python - 使用 Python 模块 SMBus、Raspberry Pi 和 Arduino 时出现输入/输出错误

postgresql - 我必须在 pg_hba.conf 中更改什么才能消除对等身份验证错误?

python - 使用 protobuf,如何从已解析的对象中删除字段?

python - 在 Raspberry Pi 上的 python 串行端口中写入字符串

gps - gpsd 使用什么格式进行馈送?

android - 测试GPS数据是否被删除

python - 停止正在运行阻塞操作的线程

Pythonanywhere - 错误代码 : Unhandled Exception

python - sqlalchemy:获取值不存在的ID

python - 如何根据行获取数据框中行的最佳最近值?