Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menggantikan Output Konsol dengan Counter dan Bar Kemajuan dalam Python?
Menggantikan Output Konsol dalam Python
Sifat serba boleh Python membolehkan output konsol tersuai disesuaikan dengan keperluan khusus. Satu teknik biasa ialah mencipta pembilang konsol dinamik yang dikemas kini di tempatnya.
Pertanyaan: Menggantikan Output dengan Pembilang
Untuk menggantikan output konsol dengan pembilang kemajuan, gelung boleh diubah suai untuk memaparkan mesej status selepas melakukan setiap lelaran. Tidak seperti output sebelumnya, yang termasuk baris baharu untuk setiap status, kaunter ini akan mengemas kini hanya baris terakhir yang dipaparkan.
Penyelesaian: Menggunakan 'r'
Satu mudah penyelesaian melibatkan memasukkan aksara pengembalian kereta "r" sebelum mesej status baharu dan mengelakkan sebarang aksara baris baharu. Ini memastikan bahawa rentetan tidak menjadi lebih pendek, menjadikannya pendekatan yang berdaya maju jika rentetan dijangka kekal konsisten panjangnya.
Contohnya:
import sys for i in range(5): sys.stdout.write("\rDoing thing %d" % i) sys.stdout.flush()
Penyelesaian Dipertingkat : Bar Kemajuan
Untuk paparan kemajuan yang lebih canggih, bar kemajuan boleh dilaksanakan. Kod berikut menyediakan fungsi bar kemajuan mudah:
def start_progress(title): sys.stdout.write(title + ": [" + "-" * 40 + "]" + chr(8) * 41) sys.stdout.flush() progress_x = 0 def progress(x): global progress_x x = int(x * 40 // 100) sys.stdout.write("#" * (x - progress_x)) sys.stdout.flush() progress_x = x def end_progress(): sys.stdout.write("#" * (40 - progress_x) + "]\n") sys.stdout.flush()
Fungsi start_progress memulakan bar kemajuan dengan penerangan tajuk. progress(x) mengemas kini bar dengan peratusan siap (x). Akhir sekali, end_progress menamatkan paparan kemajuan.
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Output Konsol dengan Counter dan Bar Kemajuan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!