Мне необходимо создавать и записывать данные в новый файл
Читать 1 файл (mode='r') можно неограниченному количеству скриптов единовременно.
Чтение с возможностью записи (w, a или r+):
- В винде файл может блокироваться первым читающим, остальные сосут чупик.
- В линуксе возможно не блокирование файла, но могут возникнуть проблемы с записью, если не реализован механизм синхронизации.
Самое простое - использовать контролируемую блокировку файла на уровне скрипта, который взаимодействует с файлами (fcntl==linux, msvcrt==win):
import fcntl
with open('file.txt', 'a') as f:
fcntl.flock(f, fcntl.LOCK_EX) # файл кем то заблокирован, ждем
try:
f.write("Some data\n") # файл разблочился, блокируем его и работаем с ним
finally:
fcntl.flock(f, fcntl.LOCK_UN) # что то пошло не так, снимаем блокировку с файла принудительно