0

我需要做什么才能允许多个程序/用户读/写同一个文件?

用例

我有一个 CSV 文件,我想让多个用户或多或少地实时编辑它。我希望能够写入和读取文件中的小更改,但我也希望能够刷新加载到我的程序中的数据,以防整个文件被一些粗心的灵魂替换。

背景

我已经看到如果时间戳被更改或文件被另一个程序/用户覆盖,某些程序将刷新文件。(我在两个不同的编辑器中利用它们的不同功能编辑文件时自己使用过这个)。

功课

我想这需要我的应用程序在最初打开原始文件时复制它。这样,对原始数据的任何更新都可以与副本进行比较,以获取对当前数据的修改。然后当临时文件更新时,可以重写主文件。然后每个用户/程序可以自己重新加载更新的文件。这是一种明智的方式/最佳实践,还是有更好的方法来达到目的。

或者,可以根据我的理解缓存文件。

阻止/锁定文件更好吗?我必须警惕比赛条件吗?

环境

我打算在 Python 中做到这一点。我也希望这是独立于平台的,例如 linux、windows 和 mac(昂贵的 linux)。

有关的

看来这些在这里这里这里是相关的。

4

2 回答 2

0

如果编辑的强度较低,您可以使用 csv 文件将其拉出,但要锁定整个文件以避免用户覆盖彼此的编辑。如果在应用编辑之前无法锁定文件,则最好使用 DB,其中将锁定特定记录而不是整个文件。

于 2013-05-16T16:16:41.947 回答
0

当用户打开文件时,您实际上会提供它的副本 file_userid-1.csv 并让他编辑该文件以避免用户覆盖他们的工作。当用户保存你覆盖原来的。在这之间,您保留一个钩子以查看原始用户是否被修改,而当前用户也修改了他的。如果原始文件被修改为差异或我不知道的东西。

我认为您需要的是 svn 或 git 工作原理的微小副本。

于 2013-05-16T16:17:16.917 回答