Git Product home page Git Product logo

filelock's Introduction

By Neil Z. SHAO:

  • fix __init__.py
  • rename to SimpleFileLock to avoid conflict
  • install:
pip install git+https://github.com/initialneil/SimpleFileLock.git
  • example 1:
from simple_filelock import SimpleFileLock

lock_fn = ...

# lock or skip
lock_fn = lock_fn + '.lock' if os.name == 'nt' else lock_fn
locker = SimpleFileLock(lock_fn, timeout=0.2)
lock_file = locker.lock_file if os.name == 'nt' else locker.lockfile

try:
    print(f'[Main] try lock {lock_file} ... ', end='')
    locker.acquire()
    print("success")
except:
    print("failed")
    # continue or return
    return

# do stuff...

locker.release()
  • example 2:
from simple_filelock import SimpleFileLock

lock_fn = ...

# lock or skip
lock_fn = lock_fn + '.lock' if os.name == 'nt' else lock_fn
try:
    with SimpleFileLock(lock_fn, timeout=0.2):
        print("Lock success")
        # do stuff...
    
except:
    print("Lock failed")
    # continue or return
    return

SimpleFileLock

A file locking mechanism that has context-manager support so 
you can use it in a with statement. This should be relatively cross
compatible as it doesn't rely on msvcrt or fcntl for the locking.


Originally posted at http://www.evanfosmark.com/2009/01/cross-platform-file-locking-support-in-python/

filelock's People

Contributors

dmfrey avatar initialneil avatar mkhulu avatar neki avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.