Безопасное закрытие файла при ручном завершении бесконечного l oop in Python - PullRequest
0 голосов
/ 02 августа 2020

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

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

К сожалению, программа работает как бесконечный l oop, в основном while True, if message received, print.

Это было нормально, когда он только что напечатал обратно в терминал, но если он пишет в файл, мне нужно закрыть и грипп sh это (я думаю) при выходе, что делается с помощью Ctrl + C. В настоящее время у меня нигде нет f.close, поскольку программа не имеет естественного пути завершения. Вместо этого я установил для третьего аргумента open значение False, поскольку мне сказали, что это не делает запись в буфер. Но нужно ли мне закрывать файл или это делается при выходе из Python? Длинный go, мне удалось заблокировать «открытый» файл, когда я неожиданно закрыл программу Python, и я не уверен, было ли это случайностью.

Есть ли способ остановить l oop через пользовательский ввод (неважно что) без на самом деле ожидание при вводе пользователя, как это делают большинство методов получения ввода пользователя? Это позволило бы мне закрыть файл и затем выйти в обычном режиме, вместо того, чтобы использовать Ctrl + C.

Я исследовал этот ответ , но код предназначен для Python 2.7 и работает как на Windows, так и на Linux, поэтому не похоже, что какие-либо из них применимы. Я слышал кое-что о "raw_input", но не знаю, что это такое и блокирует ли он.

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