Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python
1. Install progress library
Progress ialah pustaka Python pihak ketiga Jalankan arahan pip dalam terminal untuk memasangnya.
pip install progress
2. Paparan kesan bar kemajuan kemajuan
Di tapak web rasmi, anda boleh melihat pelbagai kesan bar kemajuan yang boleh dicapai oleh kemajuan, seperti ditunjukkan dalam animasi berikut.
# coding=utf-8 from progress.bar import Bar import time # 创建Bar类的实例 bar = Bar('MyProcess:', max=100) # 循环处理某业务,调用bar对象的next()方法,循环次数等于max for _ in range(100): # Do some work time.sleep(0.05) bar.next() # 循环完成后调用finish()方法 bar.finish()
Kesan berjalan:
Menggunakan perpustakaan kemajuan untuk melaksanakan Bar kemajuan adalah sangat mudah Import kelas Bar dari bar.py dalam pustaka kemajuan, nyatakan objek, kemudian gelung untuk memproses perniagaan dan memanggil kaedah seterusnya() Selepas pemprosesan selesai, panggil penamat(. ) kaedah untuk menamatkan bar kemajuan.
Parameter utama kelas Bar ialah:
mesej: maklumat yang dipaparkan oleh bar kemajuan Parameter ini boleh dihantar ke Bar menggunakan parameter kedudukan secara lalai.
lebar: Ubah suai lebar bar kemajuan, lalai ialah 32.
maks: Bar kemajuan dibahagikan kepada bahagian yang sama, seperti 100.
akhiran: Format paparan peratusan kemajuan, lalai ialah ‘%(index)d/%(max)d’.
isi: Apa yang hendak digunakan untuk mengisi bar kemajuan, lalainya ialah’#’.
empty_fill: Perkara yang hendak digunakan untuk mengisi bar kemajuan yang tidak dimuatkan, ruang lalai’.
bar_prefix: awalan bar kemajuan, lalai’.
bar_akhiran: akhiran bar kemajuan, lalai’|.
warna: Warna bar kemajuan, lalai Tiada.
Kebanyakan pengaturcara Python menggunakan PyCharm Jika kesan bar kemajuan tidak dipaparkan selepas menjalankan kod bar kemajuan dalam PyCharm, anda boleh ikuti Ikuti langkah di bawah untuk menyediakan dan kemudian jalankan kod semula.
Langkah1. Klik butang Jalankan di atas PyCharm, dan kemudian klik Edit Konfigurasi untuk memasuki halaman konfigurasi jalankan.
Langkah2. Semak terminal Emulate dalam pilihan konsol output dan jalankan semula kod.
Rakan yang berhati-hati sepatutnya menyedari bahawa selepas kod bar kemajuan di atas dijalankan dalam PyCharm, terdapat rentetan aksara pelik di bawah bar kemajuan: ‘?[?25j&rsquo ; , gunakan mod skrip python progress_demo.py untuk menjalankan kod yang sama dalam terminal, dan tidak akan ada rentetan simbol sedemikian.
Rentetan aksara ini mewakili kursor Selepas dijalankan dalam PyCharm, kursor dikeluarkan pada konsol. Penyelesaiannya ialah: tahan kekunci Ctrl, klik pada nama kelas Bar yang diimport, lompat ke kod sumber bar.py, kemudian tahan kekunci Ctrl dan klik pada kelas Progress yang diwarisi oleh kelas Bar, masukkan __init__.py fail perpustakaan kemajuan, dan tukar Pembolehubah SHOW_CURSOR dalam fail ini ditukar kepada rentetan kosong.
Selepas mengubah suai kod sumber dan menjalankan semula kod, kursor tidak akan dipaparkan lagi dan rentetan aksara tidak akan dipaparkan.
Apabila menjalankan bar kemajuan dalam PyChram, anda juga mungkin menghadapi masalah paparan yang lain. Adalah disyorkan untuk menjalankannya dalam skrip apabila masalah berlaku akan diutamakan. Berjalan dalam PyChram hanya digunakan untuk menyahpepijat kod.
1 Pengurus konteks: Gunakan dengan … tidak perlu memanggil kaedah finish() apabila selesai.
with Bar('Processing', max=20) as bar: for i in range(20): time.sleep(0.05) bar.next()
2. Gunakan kaedah iter(): Menggunakan kaedah iter() boleh memudahkan kerja iterator tanpa memanggil kaedah next().
for i in Bar('Processing').iter(range(100)): time.sleep(0.05)
Hasil pelaksanaan kedua-dua kaedah pelaksanaan ini adalah sama dengan kaedah pelaksanaan asal.
1 Siri Bar
Dalam artikel sebelumnya, anda mengklik pada kod sumber kemajuan dan anda boleh. lihat warisan kelas Bar Daripada kelas Progress, kelas Progres mewarisi daripada kelas Infinite dan kelas Infinite melaksanakan fungsi asas bar kemajuan.
Dalam bar.py, sebagai tambahan kepada kelas Bar, terdapat 6 kelas, ChargingBar, FillingSquaresBar, FillingCirclesBar, IncrementalBar, PixelBar dan ShadyBar, masing-masing adalah subkelas atau cucu kelas Bar dan mewarisi kemajuan bar. Fungsi ini hanya mengubah suai nilai akhiran pembolehubah, isi, isian_kosong, awalan_bar, akhiran_bar dalam setiap kelas dan mengubah suai gaya bar kemajuan.
Ia sangat mudah untuk digunakan Anda hanya perlu mengimport kelas ini dan menggantikan Bar dalam kod di atas dengan kelas ini, seperti FillingSquaresBar.
from progress.bar import Bar, ChargingBar, FillingSquaresBar, FillingCirclesBar, IncrementalBar, PixelBar, ShadyBar import time bar = FillingSquaresBar('MyProcess:', max=100) for i in range(100): time.sleep(0.05) bar.next() bar.finish()
Kesan operasi:
还可以自己修改上面的参数,设置个性化的进度条,本文暂不扩展,以后有空可以专门写文章介绍。
2. Spinner 系列
progress 库的 spinner.py 中实现了 5 个类,Spinner, PieSpinner, MoonSpinner, LineSpinner, PixelSpinner。
from progress.spinner import Spinner, PieSpinner, MoonSpinner, LineSpinner, PixelSpinner for i in Spinner('MySpinner:').iter(range(100)): time.sleep(0.01)
运行效果:
3.Counter 系列
progress 库的 counter.py 中实现了 4 个类,Counter, Countdown, Stack, Pie。
from progress.counter import Counter, Countdown, Stack, Pie import time for i in Counter('Loading:').iter(range(100)): time.sleep(0.01)
运行效果:
接下来将上面介绍的所有种类的进度条全部放到一起,代码如下:
from progress.bar import Bar, ChargingBar, FillingSquaresBar, \ FillingCirclesBar, IncrementalBar, PixelBar, ShadyBar from progress.spinner import Spinner, PieSpinner, MoonSpinner, LineSpinner, PixelSpinner from progress.counter import Counter, Countdown, Stack, Pie import time import random progess_list = [Bar, ChargingBar, FillingSquaresBar, FillingCirclesBar, IncrementalBar, PixelBar, ShadyBar, Spinner, PieSpinner, MoonSpinner, LineSpinner, PixelSpinner, Counter, Countdown, Stack, Pie] for P in progess_list: for i in P(P.__name__ + ':').iter(range(100)): time.sleep(0.01) bar = IncrementalBar('Random:', suffix='%(index)d%%') for i in range(100): bar.goto(random.randint(0, 100)) time.sleep(0.01) bar.finish()
运行效果:
运行代码后可以得出所有种类的进度条,与文章开头从官网截的图效果相同。
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!