Мне нужно создать измененную копию файла, который периодически обновляется программой, которая не находится под моим контролем. Я могу сделать это с помощью синхронизированного цикла, поэтому прослушивание изменений файла не требуется.
Я беспокоюсь о возможных конфликтах между записью и чтением файла из отдельных процессов одновременно. Мне определенно нужно избегать сбоя процесса записи. В процессе чтения я могу повторить попытку в случае проблем. Я не знаю, как писатель открывает файл, но он, кажется, открывает и закрывает его для каждого нового фрагмента данных.
Что мне нужно учитывать в этой ситуации? Должен ли я позволить ОС скопировать файл перед началом работы с ним? Решение должно работать в Windows. Я еще не решил, должен ли он быть написан на Python (я более знаком с ним) или как сценарий bat или PowerShell (клиенту не нужно ничего устанавливать).
Я только что провел небольшой эксперимент на Python на Linux с одним процессом, выполняющим
f = open("data.txt", "w")
f.write("1\n")
input("press enter to continue")
f.write("2\n")
f.close()
и другие делают
f = open("data.txt", "r")
print(f.readline())
input("press")
print(f.readline())
f.close()
Похоже, что читатель всегда видит оригинальную версию файла, даже когда писатель находится в процессе написания, и читатель, кажется, никогда не беспокоит писателя. Это вещь Linux? Будет ли по-другому, если файл содержит большой объем данных?