ファイル書き込み時にロックを取得する。
ロックが取得できなかった時はブロックせず、一定時間経過後、再度ブロックの取得を試みる。
■サンプルスクリプト
# ファイルロックサンプルスクリプト import sys import fcntl import datetime import time if len(sys.argv) == 1: print('引数が違います') sys.exit() with open('hello.txt', 'wt') as f: while True: try: # ロックが取得できなかったときはブロックしない => IOError fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB) except IOError: print('can\'t lock file') time.sleep(0.5) continue else: now = datetime.datetime.now() print('{:02}:{:02}:{:02}'.format(now.hour, now.minute, now.second), file=f, end='\n') print(sys.argv[1], file=f, end='\n') time.sleep(3) fcntl.flock(f, fcntl.LOCK_UN) break