如何将Raspberry Pi 3B采集的称重传感器数据导出为.txt文件?
树莓派称重传感器数据导出为TXT文件方案
核心解决思路
- 用列表实时缓存采集到的整数数据,避免频繁写入文件影响采集效率
- 捕获脚本终止信号(比如Ctrl+C),触发自动导出操作
- 将整数转为字符串后写入文件,每个数据单独占一行
完整示例代码
import signal import time # 用于存储所有采集到的称重数据 collected_load_data = [] # 脚本终止时执行的导出函数 def export_on_exit(signal_num, frame): print("\n正在导出数据...") # 用上下文管理器自动处理文件打开/关闭,避免数据丢失 with open("load_cell_records.txt", "w", encoding="utf-8") as file: # 遍历数据,每个整数转字符串后加换行符写入 for data_point in collected_load_data: file.write(f"{data_point}\n") print("数据已导出到 load_cell_records.txt") exit(0) # 注册终止信号监听(Ctrl+C触发SIGINT信号) signal.signal(signal.SIGINT, export_on_exit) # 数据采集主逻辑(替换成你实际的传感器读取代码) print("开始采集称重数据,按Ctrl+C停止并导出") try: while True: # 替换成你的传感器读取函数,确保返回整数类型数据 current_weight = int(time.time() % 200) # 模拟整数称重数据 collected_load_data.append(current_weight) print(f"当前采集数据: {current_weight}") time.sleep(0.3) # 模拟采集间隔,替换为你实际的采集频率 except Exception as error: print(f"采集过程出现错误: {error}") # 出错时也导出已采集的数据 export_on_exit(None, None)
关键细节说明
- 整数转字符串:通过
f"{data_point}"或str(data_point)即可将整数转为可写入文本的格式,解决你之前遇到的整数无法写入的问题 - 缓存机制:用列表缓存数据,仅在脚本终止时一次性写入文件,避免频繁IO操作拖慢采集速度
- 文件模式:
w模式会覆盖旧文件,若需要保留历史数据,可将"w"改为"a"(追加模式) - 异常处理:采集过程中若出现错误,也会自动导出已采集的部分数据,避免数据丢失
内容的提问来源于stack exchange,提问作者mike098765432
相关产品推荐
相关产品推荐

