python - 在 python 中写入然后修改 CSV 文件
问题描述
我正在运行一个将火车信息保存到文本文件中的网络爬虫。此信息不断更新,因此我每分钟访问一次此页面(并立即保存所有信息)。
每列火车都有目的地(城市名称)、到期日和延迟时间(0 表示准时,-x 表示提前 x 分钟,x 表示迟到 x 分钟)。
延迟可以每分钟更新一次,发生这种情况时,我需要返回并编辑文件中的行,该行对应于发生更改的火车。我担心的主要问题是,无论我存储文件的格式如何,我都不确定如何返回并轻松识别正确的行(并找到正确的行,即使可能存在重复) ,因为这些信息都不是唯一标识行的。我想到了以下解决方案:
- 向其中的每一个添加一个行号(或 id,等等),并将它们存储在 python 的内部缓冲区中,然后通过这个数字识别行。
- 使用时间和位置通过某种算法创建一个唯一的 id,并使用它来标识列。
- 使用数据库(呃)
你认为哪一个是最好的,我应该采用什么格式才能做到最好?我在想.csv,但是除非有一个解析器可以按照“加载文件->查找第一个记录->将列[x]设置为某事->保存文件”的方式执行某些操作,否则我不确定是否有任何一点。
解决方案
SQLite 将是一个很好的选择。它是一种简单的基于文件的存储机制(如 CSV),但您可以使用 SQL 命令修改特定值,而无需重新写入整个文件。
推荐阅读
- angular - 如何在角度 6 中默认选择 mat-button-toggle
- java - oracle.jbo.NoObjException:JBO-25003:对象
未找到类型 DataControl - amazon-web-services - DynamoDB 如何计算写入的大小?
- angular - 预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段授权(Jenkins API)
- python-multiprocessing - 多处理无法为我的动态数据增强代码自动回收僵尸子进程
- node.js - 使用时区数据类型对时间进行续集
- hide - 在 Play 商店中隐藏有效订阅
- jira - Jira 向数据库报告
- ssl - TLS Mutual Auth:空证书链(C 客户端-> Java 服务器)除非 cafile 指向与证书相同的文件
- qt - 启动QT linux应用程序后黑屏闪烁?