Вместо того, чтобы закрывать и открывать файл после каждого доступа, просто очистите его буфер:
theloggingfile.flush()
Таким образом, вы оставляете его открытым для записи в Python, что должно блокировать файл от других программ, открывающих егодля записи.Я думаю Excel сможет открыть его только для чтения, пока он открыт в Python, но я не могу проверить это без перезагрузки в Windows.
РЕДАКТИРОВАТЬ: Я не думаю, что вам нужен шаг ниже..flush()
должен отправить его в операционную систему, и если вы попытаетесь просмотреть его в другой программе, ОС должна предоставить ему кэшированную версию.Используйте os.fsync
, чтобы заставить операционную систему действительно записать ее на жесткий диск, например, если вы беспокоитесь о внезапных сбоях питания.
os.fsync(theloggingfile.fileno())