Mewujudkan bar kemajuan dalam terminal boleh meningkatkan pengalaman pengguna dengan menyediakan visual mewakili kemajuan sesuatu tugasan. Walau bagaimanapun, mengekalkan integriti keluaran konsol sebelumnya semasa mengemas kini bar kemajuan boleh menjadi satu cabaran. Artikel ini meneroka cara membuat bar kemajuan dalam Python sambil mengekalkan teks terdahulu.
Berikut ialah fungsi bar kemajuan boleh guna semula yang menangani masalah:
def printProgressBar(iteration, total, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'): percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total))) filledLength = int(length * iteration // total) bar = fill * filledLength + '-' * (length - filledLength) print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=printEnd) if iteration == total: print()
Parameter | Description |
---|---|
iteration | Current iteration of the loop |
total | Total number of iterations |
prefix | Prefix text before the progress bar |
suffix | Suffix text after the progress bar |
decimals | Number of decimal places for percentage |
length | Width of the progress bar |
fill | Character used to fill the progress bar |
printEnd | End of line character (e.g., 'r') |
Untuk menggunakan bar kemajuan, panggil fungsi dalam gelung:
total_items = 100 for item in range(total_items): # Do your processing here... printProgressBar(item + 1, total_items)
Untuk kes penggunaan yang dipermudahkan, pertimbangkan versi panggilan tunggal kemajuan ini bar:
def progressBar(iterable, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'): total = len(iterable) def printProgressBar(iteration): percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total))) filledLength = int(length * iteration // total) bar = fill * filledLength + '-' * (length - filledLength) print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=printEnd) printProgressBar(0) for i, item in enumerate(iterable): yield item printProgressBar(i + 1) print() for item in progressBar(range(100)): # Do your processing here...
Versi ini tidak memerlukan panggilan awal untuk menetapkan bar kemajuan pada 0% dan menerima iterables sebagai input.
Untuk Python 2 keserasian, gunakan kod berikut dan bukannya rentetan Python 3 pemformatan:
print('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end=printEnd)
Dengan memanfaatkan fungsi yang disediakan, anda boleh dengan mudah menyepadukan bar kemajuan teks ke dalam aplikasi konsol anda sambil mengelakkan pemadaman teks sebelumnya. Parameter yang boleh disesuaikan membenarkan penampilan bar kemajuan yang disesuaikan yang sesuai dengan keperluan khusus anda.
Atas ialah kandungan terperinci Bagaimana untuk Membuat Bar Kemajuan Teks dalam Terminal Anda Menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!