Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah output Python saya ditangguhkan, dan bagaimana saya boleh membuatnya muncul dalam masa nyata?
Python secara lalai menampan output untuk meningkatkan prestasi dengan menghantar semuanya sekali gus dan bukannya secara individu ke program lain seperti terminal. Sekiranya tiada baris baharu, penyata cetakan biasanya ditimbal sebaris pada satu masa, mengakibatkan kelewatan dalam memaparkan teks yang dimaksudkan.
Untuk Pernyataan Cetakan Tunggal:
for _ in range(10): print('.', end=' ', flush=True) time.sleep(.2) # or other time-consuming work
for _ in range(10): print '.', sys.stdout.flush() time.sleep(.2) # or other time-consuming work
Untuk Penyata Cetakan Berbilang:
Daripada mengepam setiap cetakan secara individu, anda boleh melumpuhkan penimbalan baris sepenuhnya. Berikut ialah beberapa penyelesaian yang berpotensi:
Tetapkan pembolehubah persekitaran PYTHONUNBUFFERED kepada Benar:
export PYTHONUNBUFFERED=1
Gunakan modul fcntl untuk memanipulasi deskriptor fail:
import fcntl stdout_fileno = sys.stdout.fileno() fcntl.fcntl(stdout_fileno, fcntl.F_SETFL, os.O_NONBLOCK)
Dengan melaksanakan teknik ini, anda boleh memastikan output dipaparkan serta-merta dalam terminal, memberikan pengalaman yang lebih bermaklumat dan interaktif semasa skrip pelaksanaan.
Atas ialah kandungan terperinci Mengapakah output Python saya ditangguhkan, dan bagaimana saya boleh membuatnya muncul dalam masa nyata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!