Запись и чтение из одного и того же текстового файла с использованием разных скриптов - PullRequest
0 голосов
/ 28 ноября 2010

Это вопрос, который не связан с какой-либо практической ситуацией, в которой я нахожусь, но он всегда меня раздражал.

Что может пойти не так, если у меня есть один сценарий, читающий идобавление строк в одном текстовом файле и чтение другого скрипта из того же файла?

Я знаю, что когда скрипт открывает текстовый файл, он работает с версией этого файла с момента, когда он имеетбыл открыт, не учитывая следующие изменения.Я хочу, чтобы оба сценария работали с самой последней возможной версией (я полагаю, что это не будет в реальном времени) текстового файла.

Я предполагаю, что один из способов задать вопрос: какой способ лучшеобрабатывать указанные сценарии?Когда я должен закрыть и открыть файл в первом?

Ответы [ 3 ]

0 голосов
/ 28 ноября 2010

Я знаю, что когда скрипт открывает текстовый файл, он работает с версией этого файла с момента его открытия, не учитывая следующие изменения

Это неверное утверждение.Например, попробуйте следующую команду в Unix:

tail -f <some file>

, а затем попробуйте добавить строки в этот файл.Команда tail будет следовать вашим дополнениям.(при условии, что вы делаете flush периодически при написании).

0 голосов
/ 28 ноября 2010

Команда tail будет делать то, что вы хотите, иначе вам придется открывать, редактировать, сохранять, закрывать из одного сценария, затем другой открывает, читает, закрывает и так далее.Сценарии должны были бы сменяться

0 голосов
/ 28 ноября 2010

Одна из проблем, с которой вы можете столкнуться, заключается в блокировке файла одним процессом, когда другой пытается получить к нему доступ.Чтобы избежать этого, вы должны открыть, прочитать весь файл (или написать новую строку) и сразу же закрыть его.

Также вы можете добавить обработку ошибок при открытии, чтобы в случае сбоя из-за блокировки файла он мог повторить попытку после небольшой паузы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...