Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Memaksa Output Terminal Segera dalam Python?

Bagaimana Memaksa Output Terminal Segera dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-13 12:44:02213semak imbas

How to Force Immediate Terminal Output in Python?

Persistent Terminal Output dengan Python

Dalam Python, terdapat isu di mana output cetakan mungkin tidak muncul serta-merta dalam terminal jika tiada baris baharu hadir. Ini berlaku disebabkan penimbalan output, di mana output disimpan sementara untuk meningkatkan prestasi.

Apa Yang Berlaku?

Secara lalai, terminal membahagikan output kepada baris. Jika baris berakhir tanpa aksara baris baharu, output kekal dalam penimbal sehingga ia selesai. Akibatnya, apabila tiada baris baharu selepas pernyataan cetakan, output tidak dipaparkan sehingga gelung atau program ditamatkan.

Membetulkan Isu

Untuk Cetakan Tunggal:

Dalam Python 3, fungsi cetakan menerima hujah siram. Menetapkannya kepada True forces output untuk dipaparkan serta-merta:

import time

for _ in range(10):
    print('.', end=' ', flush=True)
    time.sleep(.2)  # or other time-consuming work

Dalam Python 2, di mana cetakan ialah pernyataan, gunakan kaedah flush strim output standard (sys.stdout):

import time

for _ in range(10):
    print '.',
    sys.stdout.flush()
    time.sleep(.2)  # or other time-consuming work

Untuk Cetakan Berbilang:

Daripada mengepam selepas setiap cetakan, anda boleh melumpuhkan baris keluaran penimbal sama sekali untuk pengendalian berbilang cetakan yang lebih cekap. Pelbagai penyelesaian tersedia:

  • Gunakan print(file=sys.stderr) untuk mengubah hala output kepada ralat standard, yang tidak ditimbal.
  • Gunakan sys.stdout.writelines dengan senarai daripada semua penyata cetakan untuk mengeluarkannya sekali gus.
  • Pasang pakej yang tidak dibuffer dan gunakannya Kelas tidak buffer untuk mencipta strim stdout yang tidak buffer.

Atas ialah kandungan terperinci Bagaimana Memaksa Output Terminal Segera dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn