0

複数のプログラム/ユーザーが同じファイルを読み書きできるようにするにはどうすればよいですか?

使用事例

CSV ファイルがあり、複数のユーザーが多かれ少なかれリアルタイムで編集できるようにしたいと考えています。ファイルの小さな変更を読み書きできるようにしたいのですが、ファイル全体が不注意な魂によって置き換えられた場合に、プログラムにロードされたデータを更新できるようにしたいのです。

バックグラウンド

タイムスタンプが変更された場合、またはファイルが別のプログラム/ユーザーによって上書きされた場合、特定のプログラムがファイルを更新することを見てきました。(私自身、異なる機能を利用する 2 つの異なるエディターでファイルを編集するときに、これを使用しました)。

宿題

これには、アプリケーションが最初に開かれたときに元のファイルを複製する必要があると思います。このようにして、元のデータに対する更新をコピーと比較して、現在のデータに対する変更を取得できます。その後、一時ファイルが更新されると、プライマリ ファイルを再書き込みできます。各ユーザー/プログラムは、更新されたファイルを自分で再ロードできます。これは賢明な方法/ベストプラクティスですか、それともここで目的を達成するためのより良い手段はありますか?

または、私が理解していることからファイルをキャッシュすることもできます。

ファイルをブロック/ロックする方が良いですか? 競合状態に注意する必要がありますか?

環境

Pythonでこれを行う予定です。また、Linux、Windows、Mac (高価な Linux) などのプラットフォームに依存しないようにしたいと考えています。

関連している

これらはここここここに関連しているようです。

4

2 に答える 2

0

ユーザーがファイルを開くと、実際には file_userid-1.csv のコピーを提供し、ユーザーが自分の作業を上書きしないようにそのコピーを編集させます。ユーザーが保存すると、元のものを上書きします。間にフックを保持して、元のユーザーが変更され、現在のユーザーも自分のユーザーを変更したかどうかを確認します。元のファイルが変更されたかどうかはわかりません。

あなたが必要としているのは、svn や git がどのように機能するかの小さなレプリカだと思います。

于 2013-05-16T16:17:16.917 に答える