首页 > 解决方案 > 子进程调用打开 .txt 文件但不写入它

问题描述

我正在尝试使用 RaspberryPi 通过 Python 3 将 GPS 数据写入 CSV。当命令直接通过控制台运行时,写入文件有效,但是当它在 python 中时,文件打开然后返回错误(通常是另一个进程正在运行)。我们在另一行写了终止进程,但它仍然没有写入 CSV。有小费吗?

import math
import time
import os
os.system('sudo fuser -k/dev/ttyAMAO')
os.system('stty -F /dev/ttyAMAO 9600')
os.system('sudo gpsd /dev/ttyAMAO -F /var/run/gpsd.sock')
os.system('sudo gpsmon /dev/ttyAMAO -l /home/pi/Desktop/GPSDATA.txt')

标签: pythonpython-3.xraspberry-piraspbian

解决方案


请注意os.system()在子 shell 中执行命令。这意味着执行命令的 shell 的 PID 将在每个命令处发生变化。

一个简单的解决方案是将调用中的命令链接到os.system.


推荐阅读