在python中写入并修改CSV文件

在python中写入并修改CSV文件,python,csv,Python,Csv,我正在运行一个webscraper,它将火车信息保存到一个文本文件中。此信息不断更新,因此我每分钟访问此页面一次(并立即保存所有信息) 每列火车都有一个目的地(城市名称)、一个截止日期和一个晚点(0表示准时,x表示早到x分钟,x表示晚到x分钟) 延迟可以每分钟更新一次,发生这种情况时,我需要返回并编辑文件中与发生更改的列车对应的行。我关心的主要问题是,无论我以何种格式存储文件,我都不知道如何返回并轻松识别正确的行(以及如何找到正确的行,即使可能存在重复项),因为这些信息都不是唯一用于识别行的。我

我正在运行一个webscraper,它将火车信息保存到一个文本文件中。此信息不断更新,因此我每分钟访问此页面一次(并立即保存所有信息)

每列火车都有一个目的地(城市名称)、一个截止日期和一个晚点(0表示准时,x表示早到x分钟,x表示晚到x分钟)

延迟可以每分钟更新一次,发生这种情况时,我需要返回并编辑文件中与发生更改的列车对应的行。我关心的主要问题是,无论我以何种格式存储文件,我都不知道如何返回并轻松识别正确的行(以及如何找到正确的行,即使可能存在重复项),因为这些信息都不是唯一用于识别行的。我想到了以下解决办法:

  • 向每个行添加一个行号(或id,无论什么),并将它们存储在python的内部缓冲区中,然后用这个数字标识行
  • 使用时间和位置通过某种算法创建一个唯一的id,并使用该id来标识列
  • 使用数据库(urgh)

  • 你认为哪一个是最好的,我应该采用什么样的格式才能做到最好?我考虑的是.csv,但除非有一个解析器可以按照“加载文件->查找ith记录->将列[x]设置为某物->保存文件”的思路来做一些事情,否则我不确定是否有任何意义。

    SQLite将是一个很好的选择。它是一种简单的基于文件的存储机制(如CSV),但您可以使用SQL命令修改特定值,而无需重新写入整个文件


    SQLite非常适合。它是一种简单的基于文件的存储机制(如CSV),但您可以使用SQL命令修改特定值,而无需重新写入整个文件


    你有代码吗?我有用于抓取网页的代码,但我还没有开始文件编写部分,因为即使在研究之后,我也不太确定该往哪个方向走,因此我建议在这种情况下使用数据库,它将比使用文件作为临时数据库更可靠,可能更快。如果您最终选择csv路径:除非格式是固定宽度的数据,否则您无法轻松地修改文件中的值,您需要重写整个文件。当你使用csv时,这不是固定宽度。有多少条记录和列?你有代码吗?我有用于抓取web的代码,但我还没有开始文件编写部分,因为即使在研究之后,我也不太确定该往哪个方向走,因此问题是,在这种情况下,我建议使用一个数据库,它将比使用文件作为临时数据库更可靠,可能更快。如果您最终选择csv路径:除非格式是固定宽度的数据,否则您无法轻松地修改文件中的值,您需要重写整个文件。当您使用csv时,这不是固定宽度。有多少条记录和列?对于这样的项目,请使用SQLite。我认为,对于像您这样的项目,不断地保存到CSV文件中会导致大量额外的代码,而这些代码不是数据库本身所需要的。如果您对使用它感兴趣,但担心安装困难,我强烈建议您使用它以一种非常简单的方式管理数据库。@Lewis这正是我最担心的问题,tbh-我找不到我真正喜欢的库,这似乎很容易。我有网站方面的背景,所以我完全了解数据库的功能,但我认为不这样做会更容易——看来这将是我的方向,谢谢大家!喜欢SQLite这样的项目。我认为,对于像您这样的项目,不断地保存到CSV文件中会导致大量额外的代码,而这些代码不是数据库本身所需要的。如果您对使用它感兴趣,但担心安装困难,我强烈建议您使用它以一种非常简单的方式管理数据库。@Lewis这正是我最担心的问题,tbh-我找不到我真正喜欢的库,这似乎很容易。我有网站方面的背景,所以我完全了解数据库的功能,但我认为不这样做会更容易——看来这将是我的方向,谢谢大家!