Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

王林
王林ke hadapan
2023-04-25 09:01:061874semak imbas

Progress library installation and introduction

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.

Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

bar kemajuan pelaksanaan kemajuan

# 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:

Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

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.

Penyelesaian kepada masalah paparan bar kemajuan PyCharm

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.

Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

Langkah2. Semak terminal Emulate dalam pilihan konsol output dan jalankan semula kod.

Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

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.

Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

Selepas mengubah suai kod sumber dan menjalankan semula kod, kursor tidak akan dipaparkan lagi dan rentetan aksara tidak akan dipaparkan.

Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

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.

Dua cara lain untuk menulis kod bar kemajuan

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.

Melaksanakan lebih banyak jenis bar kemajuan

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:

Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

还可以自己修改上面的参数,设置个性化的进度条,本文暂不扩展,以后有空可以专门写文章介绍。

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)

运行效果:

Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

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)

运行效果:

Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

汇总

接下来将上面介绍的所有种类的进度条全部放到一起,代码如下:

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()

运行效果:

Bagaimana untuk melaksanakan bar kemajuan menggunakan perpustakaan kemajuan dalam Python

运行代码后可以得出所有种类的进度条,与文章开头从官网截的图效果相同。

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam