在Python中同时读写文件

0 投票
1 回答
4050 浏览
提问于 2025-04-17 16:28

我正在计划一个用Python3写的应用程序,这个程序会用到三个文本文件或者三个数据库表,我还不确定用哪个。这些文件里只包含字符串,或者在数据库表里每一行都有一个字符串。

这个应用程序有三个程序,分别是program_A、program_B和program_C,它们会处理这三个文件,分别是file_A、file_B和file_C。Program A会读取和写入file_A,读取file_C并写入file_B;program_B会读取和写入file_B;program_C则会写入file_A和file_C。file_A和file_B可以看作是一个想象中的队列,程序会从文件中读取一行,然后把这一行删除(所以我提到读取/写入),而写入文件的程序则是把一行加到文件的末尾。

我不太确定这些程序该怎么一起工作,因为它们是同时访问这些文件的。我查过sqlite的文件锁定状态,但不知道怎么用它来解决我的问题。我也不确定是应该使用sqlite数据库还是简单的文本文件。

我还在考虑使用某种共享内存,或者内存数据库,这样我可以在应用程序启动时加载这些文件的内容,并在应用程序退出时再写回文件,但我担心如果出现软件或硬件故障,会导致我在这次运行中做的工作丢失,因为文件没有因为故障而更新。

1 个回答

1

在同一个文件里同时读和写?不行。这只会让事情变得复杂和麻烦。你可以试试线程或者多进程的方式来共享数据,这样你可以用一个队列的实现来满足你的需求。

使用sqlite的方法也不错,因为你可以添加必要的数据来设置这些“队列”的顺序等等,但我个人不太喜欢通过数据库让进程之间进行通信。

撰写回答