Locking a file in Python

Evan Fosmark picture Evan Fosmark · Jan 29, 2009 · Viewed 169.4k times · Source

I need to lock a file for writing in Python. It will be accessed from multiple Python processes at once. I have found some solutions online, but most fail for my purposes as they are often only Unix based or Windows based.

Answer

Evan Fosmark picture Evan Fosmark · Jan 31, 2009

Alright, so I ended up going with the code I wrote here, on my website link is dead, view on archive.org (also available on GitHub). I can use it in the following fashion:

from filelock import FileLock

with FileLock("myfile.txt.lock"):
    print("Lock acquired.")
    with open("myfile.txt"):
        # work with the file as it is now locked