Моя основная задача - записать в один файл (например, file.txt
) во многих параллельных потоках, каждый поток должен начинаться с определенного смещения файла.
Пример:
скрипт 1 - пишет 10 символов с позиции 0
скрипт 2 - пишет 10 символов с позиции 10
скрипт 3 - пишет 10 символов с позиции 20
Я даже не дошел до параллелизм, потому что я застрял при записи в различные смещения файла. Я создал простой скрипт для проверки моей идеи:
file = open("sample_file.txt", "w")
file.seek(100)
file.write("new line")
file.close()
Хорошо, файл создан, смещение было перемещено в 100
и добавлено предложение 'new line'
. Успех.
Но тогда я хотел открыть тот же файл и добавить что-то с помощью offsett 10
:
file = open("sample_file.txt", "w")
file.seek(100)
file.write("new line")
file.close()
file = open("sample_file.txt", "a")
file.seek(10)
file.write("second line")
file.close()
И предложение 'second line'
добавляется, но в конце файла . Я уверен, что можно добавить символы где-то в середине файла. Кто-нибудь может помочь с этим простым?
Или, может быть, у кого-то есть идея, как сделать это параллельно?
Pawel