python檔案加鎖

2021-08-07 15:32:36 字數 774 閱讀 8460

首先要引入庫

import fcntl

開啟乙個檔案

f = open('./test')

對該檔案加密:

fcntl.flock(f, fcntl.lock_ex)

這樣就對檔案test加鎖了,如果有其他程序要對test進行加鎖,則不能成功,會被阻塞,但不會退出程式。

解鎖:fcntl.flock(f,fcntl.lock_un)

解鎖後,其他程序就可以對該檔案進行加鎖了。

另外還有一種共享鎖:acquire a shared lock

fcntl.flock(f,fcntl.lock_sh)

檔案加鎖捕捉異常

1 #!/usr/bin/env python

2 #coding:utf-8

3 """

4 檔案鎖測試

5 """

6 7 import fcntl

8 import time

9 10 try:

11 fp = open('_filelock','w')

12 fcntl.flock(fp.fileno(), fcntl.lock_ex | fcntl.lock_nb)

13 print '檔案鎖開始執行'

14 time.sleep(50)

15 fp.close()

16 except ioerror:

17 print "lock"

Python多執行緒讀寫檔案加鎖

python的多執行緒在io方面比單執行緒還是有優勢,但是在多執行緒開發時,少不了對檔案的讀寫操作。在管理多個執行緒對同一檔案的讀寫操作時,就少不了檔案鎖了。在linux下,python的標準庫有現成的檔案鎖,來自於fcntl模組。這個模組提供了unix系統fcntl 和ioctl 的介面。對於檔案...

unix c檔案加鎖解鎖

引數lock指標 引數lock指標為flock 結構指標,定義如下 struct flock l type 有三種狀態 f rdlck 建立乙個供讀取用的鎖定 f wrlck 建立乙個供寫入用的鎖定 f unlck 刪除之前建立的鎖定 l whence 也有三種方式 seek set 以檔案開頭為鎖...

Python 多執行緒不加鎖分塊讀取檔案

多執行緒讀取或寫入,一般會涉及到同步的問題,否則產生的結果是無法預期的。那麼在讀取乙個檔案的時候,我們可以通過加鎖,但讀不像寫操作,會導致檔案錯誤,另外鎖操作是有一定的耗時。因此通過檔案分塊,可以比較有效的解決多執行緒讀問題,之前看到有人寫的分塊操作,比較複雜,需要實現建立好執行緒以及所讀取塊資訊,...