Пустой выходной файл, когда я убиваю процесс Python - PullRequest
0 голосов
/ 23 декабря 2018

Я запускаю скрипт Python на удаленном сервере через SSH.Сценарий создает новый файл и записывает в него некоторые данные.Я делаю это в while True блоке.Когда я убиваю процесс python, мой выходной файл пуст.Как сохранить данные в выходной файл?

При использовании CTRL + C файл сохраняет все данные.Но я не могу использовать эту комбинацию, потому что я запускаю скрипт на удаленной машине и могу потерять соединение.Кроме того, я не понимаю, как долго будет работать этот скрипт, если я остановлю соединение SSH.

with open('out/' + filename, 'a') as f:
    while True:
        r = get_updates()
        f.write(r.text)

        time.sleep(10)

1 Ответ

0 голосов
/ 23 декабря 2018

write просто вывод очереди для записи.Это полностью зависит от ОС, чтобы решить, когда он на самом деле записывает в файл.Если вы хотите убедиться, что он действительно достигает файла, вам также следует явно сбросить его:

with open('out/' + filename, 'a') as f:
    while True:
        r = get_updates()
        f.write(r.text)
        f.flush()

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