Mam długo działający skrypt Pythona, który okresowo wysyła dane do standardowego wyjścia, które wywołałem za pomocą czegoś takiego:
python script.py > output.txt
Ten skrypt działa już od jakiegoś czasu i chcę go zatrzymać za pomocą Ctrl+, Cale nie stracę żadnego z jego wyników. Niestety, kiedy zaimplementowałem skrypt, zapomniałem opróżnić bufor po każdej linii danych wyjściowych czymś takim sys.stdout.flush()
( poprzednio sugerowane rozwiązanie wymuszające opróżnianie danych wyjściowych), więc wywołanie Ctrl+ w Ctej chwili spowoduje, że stracę całą moją wydajność.
Jeśli zastanawiasz się, czy jest jakiś sposób interakcji z działającym skryptem Pythona (lub, bardziej ogólnie, działającym procesem), aby zmusić go do opróżnienia bufora wyjściowego. Nie pytam, jak edytować i ponownie uruchamiać skrypt, aby poprawnie się opróżnił - to pytanie dotyczy konkretnie interakcji z uruchomionym procesem (i, w moim przypadku, utraty danych wyjściowych z mojego bieżącego wykonania kodu).