Skip to content
An extended version of portalocker to lock files in Python using the with statement
Find file
New pull request
Latest commit b0de666 @WoLpH Merge pull request #7 from rozenbom/master
Fixing pywintypes.error usage - using attributes instead of indexing.


portalocker - Cross-platform locking library

Test Status Coverage Status Code Health


Portalocker is a library to provide an easy API to file locking.

Originally created as a Python Recipe by Jonathan Feinberg and Lowell Alleman

The module is currently maintained by Rick van Hattem <>. The project resides at . Bugs and feature requests can be submitted there. Patches are also very welcome.



To make sure your cache generation scripts don't race, use the Lock class:

>>> import portalocker
>>> with portalocker.Lock('somefile', timeout=1) as fh:
    print >>fh, 'writing some stuff to my cache...'

To lock a file exclusively, use the lock method:

>>> import portalocker
>>> file = open('somefile', 'r+')
>>> portalocker.lock(file, portalocker.LOCK_EX)
>>> file.write('foo')
>>> file.close()

There is no explicit need to unlock the file as it is automatically unlocked after file.close(). If you still feel the need to manually unlock a file than you can do it like this:

>>> portalocker.unlock(file)

Do note that your data might still be in a buffer so it is possible that your data is not available until you flush() or close().




see the LICENSE file

Something went wrong with that request. Please try again.