import os import time import sys dest_fname = 'DEST.txt' # Print only once has_printed = False for i in range(100000): try: print("BE", time.time()) fd = os.open(dest_fname, os.O_RDONLY) try: print("IN", time.time()) content = os.read(fd, 1024) print("AF", time.time()) try: assert content == b'CONTENT', 'FOUND INSTEAD: {}'.format(content) except AssertionError: print('ER1', fd, os.fstat(fd), file=sys.stderr) print('Exists:', os.path.exists(dest_fname), file=sys.stderr) raise else: if not has_printed: print('OK-', fd, os.fstat(fd), file=sys.stderr) has_printed = True finally: os.close(fd) print(i, content) except FileNotFoundError: print(i, ">> DELETED <<") # Recreate the file time.sleep(0.001) # Wait a bit fd = os.open(dest_fname, os.O_WRONLY|os.O_CREAT, 0o644) try: body = b"CONTENT" os.write(fd, body) finally: os.close(fd) print("READ DONE.", file=sys.stderr)