Печать в файл сценария Python, выполняемого в качестве фонового процесса - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть скрипт на python, выполнение которого занимает около 3 часов.Я хочу напечатать некоторые данные, которые он генерирует в файл .csv.

Я нахожусь в centos, и я запускаю свой скрипт так:

python my_script.py > output.csv &

Я также пробовал:

python my_script.py &> output.csv 

Ничто не печатает в output.csv,даже не некоторые тестовые утверждения в самом начале сценария.

Следующее, что я попробовал, было открытие файла в моем скрипте - f = open('output.csv', 'a') и запись в него с использованием f.write().Опять же, ничего не отображается в файле (хотя он создается).

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

Я печатаю так:

print('hello, this is a test')

и в другой версии у меня что-то вроде этого:

f = open('output.csv', 'a')
f.write('hello, this is a test')

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

Любая помощь приветствуется.Спасибо!

1 Ответ

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

Попробуйте очистить буфер стандартного вывода:

Python> = 3.3:

print('hello, this is a test', flush=True)

Более ранние версии:

import sys

print('hello, this is a test')
sys.stdout.flush()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...