Pythonでファイルに排他的にアクセスするための最良の方法は何ですか?

mar10:

これを解決する最もエレガントな方法は何ですか?

  • 読み取り用にファイルを開くが、まだ書き込み用に開かれていない場合のみ
  • ファイルを書き込み用に開くが、読み取りまたは書き込み用にまだ開いていない場合のみ

組み込み関数は次のように機能します

>>> path = r"c:\scr.txt"
>>> file1 = open(path, "w")
>>> print file1
<open file 'c:\scr.txt', mode 'w' at 0x019F88D8>
>>> file2 = open(path, "w")
>>> print file2
<open file 'c:\scr.txt', mode 'w' at 0x02332188>
>>> file1.write("111")
>>> file2.write("222")
>>> file1.close()

scr.txtに「111」が含まれるようになりました。

>>> file2.close()

scr.txtは上書きされ、現在 '222'が含まれています(WindowsではPython 2.4)。

ソリューションは、同じプロセス内で(上記の例のように)、別のプロセスがファイルを開いたときに機能するはずです。
クラッシュするプログラムがロックを開いたままにしない場合は、この方法をお勧めします。

ブライアン:

完全にクロスプラットフォームの方法があるとは思いません。UNIXでは、fcntlモジュールがこれを行います。ただし、Windowsでは(パスのそばにいると思います)、win32fileモジュールを使用する必要があります。

幸い、Pythonクックブックには、プラットフォームに適したメソッドを使用した移植可能な実装(portalocker)があります。

これを使用するには、ファイルを開いて、次のように呼び出します。

portalocker.lock(file, flags)

ここで、フラグはportalocker.LOCK_EX(排他的な書き込みアクセスの場合)、またはLOCK_SHが共有の読み取りアクセスの場合です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JPAで相互に排他的な関係を実装するための最良の方法は何ですか?

分類Dev

C#-オブジェクトのリストをファイルにシリアル化するための最良の方法は何ですか?

分類Dev

Windowsのインストールプロセスにアクセスするための最良の方法は何ですか?

分類Dev

Pythonを使用してcsvファイルの大きなデータセットに列を追加するための最良の方法は何ですか?

分類Dev

アクセス許可の問題に遭遇することなく、Macのみのネットワークでファイルを共有するための最良の方法は何ですか?

分類Dev

Pythonデータフレームの前の行にアクセスするための最良の方法は何ですか?

分類Dev

別のルートファイル内からエクスプレス「app」オブジェクトにアクセスするための最良の方法は何ですか?

分類Dev

ディレクトリがリストファイルにアクセスできるかどうか、または不正アクセスの例外が発生するかどうかをC#.NETで確認するための最良の方法は何ですか

分類Dev

春に親クラスのフィールドをautowireするための最良の方法は何ですか?

分類Dev

nodejsの2つのhtmlファイル間で共有されているjavascript変数にアクセスするための最良の方法は何ですか

分類Dev

ディレクトリにあるファイルの数を数えるための最もリソース効率の良い方法は何ですか?

分類Dev

.zipファイルを作成するためのスクリプトファイルを作成するための最良の方法は何ですか?

分類Dev

.zipファイルを作成するためのスクリプトファイルを作成するための最良の方法は何ですか?

分類Dev

同じファイルを含めるミスを回避するための最良の方法は何ですか?

分類Dev

相互に排他的なリクエストパラメータのためのAPIを設計するためのより良い方法は何ですか?

分類Dev

Pythonで設定ファイルを設定するための最良の方法は何ですか

分類Dev

クライアントに何もインストールせずにレポートを表示するための最良の方法は何ですか

分類Dev

AJAX経由でファイルにアクセスするための正しいURLは何ですか?

分類Dev

Kubernetesリソースのyamlファイルを作成するための最良の方法は何ですか?

分類Dev

awkで時間を処理し、出力をcsvファイルの新しい列にスポンジするための最良の方法は何ですか?

分類Dev

データフレーム列の値にアクセスするための最良の方法は何ですか?

分類Dev

複数のスレッドに同時にファイルを読み取らせるための最良の方法は何ですか?

分類Dev

ファイルパスを取得するための最良の方法は何でしょうか

分類Dev

コントローラでDbContextクラスにアクセスできないようにするための最良の方法は何ですか?

分類Dev

ビデオファイルをDVDに書き込むための最良の方法は何ですか?

分類Dev

ファイルに構造体を書くための最良の方法は何ですか?

分類Dev

S3に大きなファイルを書き込むための最良の方法は何ですか?

分類Dev

同じ名前の複数のファイル-検索のためにそれらを区別するための最良の方法は何ですか

分類Dev

WindowsからUbuntuに移行するときにすべてのファイルを保持するための最良の方法は何ですか?

Related 関連記事

  1. 1

    JPAで相互に排他的な関係を実装するための最良の方法は何ですか?

  2. 2

    C#-オブジェクトのリストをファイルにシリアル化するための最良の方法は何ですか?

  3. 3

    Windowsのインストールプロセスにアクセスするための最良の方法は何ですか?

  4. 4

    Pythonを使用してcsvファイルの大きなデータセットに列を追加するための最良の方法は何ですか?

  5. 5

    アクセス許可の問題に遭遇することなく、Macのみのネットワークでファイルを共有するための最良の方法は何ですか?

  6. 6

    Pythonデータフレームの前の行にアクセスするための最良の方法は何ですか?

  7. 7

    別のルートファイル内からエクスプレス「app」オブジェクトにアクセスするための最良の方法は何ですか?

  8. 8

    ディレクトリがリストファイルにアクセスできるかどうか、または不正アクセスの例外が発生するかどうかをC#.NETで確認するための最良の方法は何ですか

  9. 9

    春に親クラスのフィールドをautowireするための最良の方法は何ですか?

  10. 10

    nodejsの2つのhtmlファイル間で共有されているjavascript変数にアクセスするための最良の方法は何ですか

  11. 11

    ディレクトリにあるファイルの数を数えるための最もリソース効率の良い方法は何ですか?

  12. 12

    .zipファイルを作成するためのスクリプトファイルを作成するための最良の方法は何ですか?

  13. 13

    .zipファイルを作成するためのスクリプトファイルを作成するための最良の方法は何ですか?

  14. 14

    同じファイルを含めるミスを回避するための最良の方法は何ですか?

  15. 15

    相互に排他的なリクエストパラメータのためのAPIを設計するためのより良い方法は何ですか?

  16. 16

    Pythonで設定ファイルを設定するための最良の方法は何ですか

  17. 17

    クライアントに何もインストールせずにレポートを表示するための最良の方法は何ですか

  18. 18

    AJAX経由でファイルにアクセスするための正しいURLは何ですか?

  19. 19

    Kubernetesリソースのyamlファイルを作成するための最良の方法は何ですか?

  20. 20

    awkで時間を処理し、出力をcsvファイルの新しい列にスポンジするための最良の方法は何ですか?

  21. 21

    データフレーム列の値にアクセスするための最良の方法は何ですか?

  22. 22

    複数のスレッドに同時にファイルを読み取らせるための最良の方法は何ですか?

  23. 23

    ファイルパスを取得するための最良の方法は何でしょうか

  24. 24

    コントローラでDbContextクラスにアクセスできないようにするための最良の方法は何ですか?

  25. 25

    ビデオファイルをDVDに書き込むための最良の方法は何ですか?

  26. 26

    ファイルに構造体を書くための最良の方法は何ですか?

  27. 27

    S3に大きなファイルを書き込むための最良の方法は何ですか?

  28. 28

    同じ名前の複数のファイル-検索のためにそれらを区別するための最良の方法は何ですか

  29. 29

    WindowsからUbuntuに移行するときにすべてのファイルを保持するための最良の方法は何ですか?

ホットタグ

アーカイブ