สร้างแถบความคืบหน้าใน Python CLI

สร้างแถบความคืบหน้าใน Python CLI

เมื่อใดก็ตามที่คุณดาวน์โหลดไฟล์หรือเริ่มเกม คุณจะเห็นแอนิเมชั่นที่สวยงามซึ่งจะอัปเดตตัวเองจนเสร็จสิ้น นี่คือแถบความคืบหน้า แถบความคืบหน้าเป็นองค์ประกอบกราฟิกที่ใช้เพื่อแสดงภาพความคืบหน้าของงาน เช่น การดาวน์โหลด การอัปโหลด หรือการถ่ายโอนไฟล์





แถบความคืบหน้ามีสองประเภท: กำหนดและไม่แน่นอน กำหนดแถบความคืบหน้าติดตามความคืบหน้าของงานเมื่อเวลาผ่านไป แถบความคืบหน้าที่ไม่แน่นอนทำงานอย่างไม่สิ้นสุดด้วยภาพเคลื่อนไหวแบบวนซ้ำ





การทำวิดีโอประจำวัน

ดังนั้นคุณจะสร้างแถบความคืบหน้าที่กำหนดในโปรแกรม Python CLI ได้อย่างไร





โมดูล tqdm คืออะไร?

tqdm เป็นโมดูลที่ดูแลโดย Casper da Costa-Luis เป็นหลักพร้อมกับสมาชิกอีกสิบคน tqdm มาจากคำภาษาอาหรับ taqaddum ซึ่งอาจหมายถึง 'ความคืบหน้า' และเป็นคำย่อของ 'ฉันรักคุณมาก' ในภาษาสเปน (te quiero demasiado)

การใช้โมดูล tqdm คุณสามารถสร้างแถบความคืบหน้าที่น่าสนใจและใช้งานได้ในเทอร์มินัลของคุณ ในการติดตั้งโมดูล tqdm ให้เปิดเทอร์มินัลแล้วรัน:



pip install tqdm

โมดูลเวลาคืออะไร?

โมดูลยูทิลิตี้มาตรฐานของ Python ประกอบด้วย โมดูลเวลา โดยค่าเริ่มต้น คุณจึงไม่ต้องติดตั้ง คุณสามารถใช้ฟังก์ชันสลีปที่มีให้ในโมดูลเวลาเพื่อเพิ่มการหน่วงเวลาให้กับแอปพลิเคชันของคุณ ซึ่งจะช่วยให้เห็นภาพความคืบหน้าของแถบ

คุณสามารถใช้โมดูลเวลาเพื่อดูวันที่และเวลา กำหนดเวลางาน และสร้างแอปพลิเคชันที่มีประโยชน์ เช่น a นาฬิกาปลุกธรรมดา หรือนาฬิกาจับเวลา





วิธีเพิ่มแถบความคืบหน้าและปรับแต่งมัน

แถบความคืบหน้าเริ่มต้นใช้งานง่าย และคุณสามารถปรับแต่งได้ด้วยตัวเลือกต่างๆ

1. แถบความคืบหน้าอย่างง่าย

คุณสามารถสร้างแถบความคืบหน้าอย่างง่ายได้โดยนำเข้าคลาส tqdm จากโมดูล tqdm และฟังก์ชันสลีปจากโมดูลเวลา ใช้ for loop และวนซ้ำ tqdm ในช่วงที่คุณต้องการ





ช่วงสามารถเป็นอะไรก็ได้สูงถึง 9e9 (เก้าพันล้าน) ส่งจำนวนวินาทีไปที่ฟังก์ชันสลีปเพื่อเพิ่มการหน่วงเวลาเพื่อให้คุณเห็นภาพและเห็นแถบความคืบหน้าในการดำเนินการ

คุณสามารถใช้แถบความคืบหน้าอย่างง่ายดังนี้:

from tqdm import tqdm 
from time import sleep

for i in tqdm(range(100)):
sleep(.1)

แทนที่จะนำเข้า tqdm คุณสามารถนำเข้า trange จากโมดูล tqdm เพื่อรวม tqdm และ range และส่งพารามิเตอร์โดยตรง

from tqdm import trange 
from time import sleep

for i in trange(100):
sleep(.1)

ผลลัพธ์ที่คุณได้รับจากการสร้างแถบความคืบหน้าอย่างง่ายมีลักษณะดังนี้:

  แถบความคืบหน้าอย่างง่าย

ผลลัพธ์นี้รวมถึงเวอร์ชันกราฟิกและข้อความของความคืบหน้า พร้อมด้วยสถิติเวลา

2. แถบความคืบหน้าพร้อมข้อความอธิบาย

คุณสามารถเพิ่มป้ายกำกับอธิบายลงในแถบความคืบหน้าเพื่ออธิบายวัตถุประสงค์ได้ ส่งข้อความที่คุณต้องการให้แสดงเครื่องหมายคำพูดคู่เป็น the desc พารามิเตอร์:

for i in tqdm(range(0, 10), desc ="Progress: "): 
sleep(.4)

ผลลัพธ์ที่คุณได้รับจากการเพิ่มข้อความคำอธิบายพร้อมกับแถบความคืบหน้าจะมีลักษณะดังนี้:

  แถบความคืบหน้าพร้อมข้อความ

3. แถบความคืบหน้าพร้อมความกว้างที่กำหนดเอง

ตามค่าเริ่มต้น ความกว้างของแถบความคืบหน้าจะถูกตั้งค่าเป็นไดนามิกตามขนาดของหน้าต่างผลลัพธ์ คุณสามารถปรับแต่งได้ตามใจชอบด้วยความช่วยเหลือของ ncols พารามิเตอร์.

คุณสามารถใช้แถบความคืบหน้าด้วยความกว้างที่กำหนดเองได้ดังนี้:

for i in tqdm(range(0, 10), ncols = 100, desc ="Progress: "): 
sleep(.1)

ผลลัพธ์ที่คุณได้รับจากการยืดความกว้างของแถบความคืบหน้าจะมีลักษณะดังนี้:

  แถบความคืบหน้าพร้อมคำอธิบายและ ncols

4. แถบความคืบหน้าโดยใช้ Color

คุณสามารถปรับแต่งสีของแถบความคืบหน้าได้โดยใช้พารามิเตอร์สี คุณสามารถทำได้สองวิธี:

  1. ชื่อสี: คุณสามารถใช้ชื่อของสี เช่น เขียว ดำ ฟ้า และอีกมากมาย
  2. รหัสฐานสิบหก: รหัสฐานสิบหกเป็นรูปแบบ ที่คอมพิวเตอร์เก็บสี คุณสามารถระบุสีฐานสิบหกด้วยแฮช (#) ตามด้วยอักขระ 6 ตัวในเลขฐานสิบหก (0-9, a-f) รหัสฐานสิบหก #000000 หมายถึงสีดำในขณะที่ #ffffff หมายถึงสีขาว โดยการเปลี่ยนความเข้มของตัวเลขเหล่านี้ คุณจะได้เฉดสีที่ต่างกัน คุณสามารถใช้ เครื่องมือเลือกสีจาก Google เพื่อเลือกและวางสีรหัสฐานสิบหก

คุณสามารถใช้แถบความคืบหน้าด้วยสีที่กำหนดเองได้ดังนี้:

for i in tqdm(range(0, 100), colour="#00ffff", desc ="Progress: "): 
sleep(.1)

ผลลัพธ์ที่คุณได้รับจากการเปลี่ยนสีของแถบความคืบหน้า:

  แถบความคืบหน้าพร้อมสี

5. แถบความคืบหน้าพร้อมช่วงเวลาขั้นต่ำ

คุณสามารถสร้างแถบความคืบหน้าที่อัปเดตด้วยช่วงเวลาต่ำสุดแทนการตั้งค่าเริ่มต้น คุณสามารถส่งผ่านตัวเลข เช่น 1.5 หรือ 2 ที่จะใช้เป็นช่วงเวลาระหว่างการอัปเดตสองครั้ง ค่าเริ่มต้นของช่วงเวลาต่ำสุดคือ 0.1

คุณสามารถใช้แถบความคืบหน้าโดยมีช่วงเวลาขั้นต่ำดังนี้:

for i in tqdm(range(0, 100), mininterval = 2, desc ="Progress: "): 
sleep(.1)

ผลลัพธ์ที่คุณได้รับโดยการระบุช่วงเวลาต่ำสุดในแถบความคืบหน้า:

  แถบความคืบหน้าพร้อมช่วงเวลาขั้นต่ำ

6. แถบความคืบหน้าโดยใช้อักขระ ASCII

คุณสามารถสร้างแถบความคืบหน้าโดยใช้อักขระ ASCII แทนแถบปกติที่คุณเห็นบนหน้าจอ ในการใช้อักขระ ASCII ให้ตั้งค่า ascii พารามิเตอร์ไปยังรูปแบบที่ต้องการ

หากคุณใช้บางอย่างเช่น 12345* แต่ละคอลัมน์ของช่วงจะวนซ้ำจากหนึ่งไปยังเครื่องหมายดอกจันตามลำดับ แม้ว่ามันจะเจ๋งและปรับแต่งได้ แต่ให้แน่ใจว่าได้ใช้งานที่เป็นมิตรต่อผู้ใช้เมื่อใช้งานในแอพพลิเคชั่นจริง

คุณสามารถใช้แถบความคืบหน้าโดยใช้อักขระ ASCII เป็น:

for i in tqdm(range(0, 100), ascii ="12345*"): 
sleep(.1)

ผลลัพธ์ที่คุณได้รับโดยใช้อักขระ ASCII ในแถบความคืบหน้าจะมีลักษณะดังนี้:

  แถบความคืบหน้าพร้อมอักขระ ASCII

7. แถบความคืบหน้าโดยใช้จุดเริ่มต้นที่ระบุ

แทนที่จะเริ่มแถบความคืบหน้าจากศูนย์ คุณสามารถตั้งค่าจุดเริ่มต้นเฉพาะสำหรับแถบความคืบหน้าได้ ส่งค่าเริ่มต้นเช่น 50 ไปที่ อักษรย่อ พารามิเตอร์.

คุณสามารถใช้แถบความคืบหน้าโดยใช้จุดเริ่มต้นเฉพาะดังนี้:

วิธีการโค้งข้อความใน adobe illustrator
for i in tqdm(range(0, 100), initial = 50, desc ="Progress: "): 
sleep(.1)

ผลลัพธ์ที่คุณได้รับเมื่อเริ่มต้นแถบความคืบหน้า ณ จุดที่ระบุ:

  แถบความคืบหน้าพร้อมพารามิเตอร์เริ่มต้น

8. แถบความคืบหน้าพร้อมจำนวนการวนซ้ำที่ระบุ

คุณสามารถสร้างแถบความคืบหน้าที่เรียกใช้การวนซ้ำตามจำนวนที่ระบุได้ หากคุณต้องการเรียกใช้การวนซ้ำ 500 ครั้งจาก 50,000 ครั้ง ให้ผ่าน 500 เป็นช่วง และ 50000 เป็นจำนวนการวนซ้ำทั้งหมดไปยัง ทั้งหมด พารามิเตอร์.

คุณสามารถใช้แถบความคืบหน้าได้โดยใช้การวนซ้ำตามจำนวนที่กำหนดดังนี้:

for i in tqdm(range(0, 500), total = 50000, desc ="Progress: "): 
sleep(.1)

ผลลัพธ์ที่คุณได้รับโดยใช้แถบความคืบหน้าพร้อมจำนวนการวนซ้ำที่ระบุ:

  แถบความคืบหน้าพร้อมระบุจำนวนการวนซ้ำ

การประยุกต์ใช้แถบความคืบหน้า

คุณจะเห็นแถบความคืบหน้าในสถานการณ์ต่างๆ เช่น การเล่นโปรแกรมเล่นสื่อหรือแสดงขั้นตอนผ่านแบบฟอร์มออนไลน์

แม้ว่าแถบแสดงความคืบหน้าจะดูสวยงาม แต่ก็เป็นงานสำคัญในการให้ข้อเสนอแนะแก่ผู้ใช้ในกรณีที่ผู้ใช้ไม่ได้ออกจากเว็บไซต์