Khi cố gắng viết thiết bị xuất chuẩn từ tập lệnh Python sang tệp văn bản ( python script.py > log
), tệp văn bản được tạo khi lệnh được bắt đầu, nhưng nội dung thực tế không được viết cho đến khi tập lệnh Python kết thúc. Ví dụ:
script.py:
import time
for i in range(10):
print('bla')
time.sleep(5)
in ra thiết bị xuất chuẩn cứ sau 5 giây khi được gọi với python script.py
, nhưng khi tôi gọi python script.py > log
, kích thước của tệp nhật ký sẽ bằng 0 cho đến khi tập lệnh kết thúc. Có thể ghi trực tiếp vào tệp nhật ký, để bạn có thể theo dõi tiến trình của tập lệnh (ví dụ: sử dụng tail
) không?
EDIT Hóa ra đó python -u script.py
là mánh khóe, tôi không biết về bộ đệm của thiết bị xuất chuẩn.