Podczas próby zapisania standardowego skryptu ze skryptu w języku Python do pliku tekstowego ( python script.py > log
) plik tekstowy jest tworzony po uruchomieniu polecenia, ale rzeczywista zawartość nie jest zapisywana, dopóki skrypt się nie zakończy. Na przykład:
script.py:
import time
for i in range(10):
print('bla')
time.sleep(5)
wypisuje na standardowe wyjście co 5 sekund po wywołaniu python script.py
, ale kiedy dzwonię python script.py > log
, rozmiar pliku dziennika pozostaje zerowy do momentu zakończenia skryptu. Czy jest możliwe bezpośrednie zapisanie do pliku dziennika, abyś mógł śledzić postęp skryptu (np. Używając tail
)?
EDYCJA Okazuje się, że to python -u script.py
działa, nie wiedziałem o buforowaniu standardowego wyjścia.