展示效果
|过程|
|运行中|
|运行完成|
定义过程
1. 调用相关函数
import time
import sys
2. 定义单个进度条展示函数
①定义函数名
def get_progress_bar(content, current_progress, overall_progress, size=1, stylelist=["=", "□", "-"]):
② 定义计算部分
remaining_progress = overall_progress-current_progress
current_length = int(current_progress*size-1)*stylelist[0]
current_location = stylelist[1]
remaining_length = int(remaining_progress*size)*stylelist[2]
percentage = int((current_progress/overall_progress)*100)
③ 定义两种样式
string = "Working... {0} |{1}{2}{3}| {4}/{5} ({6}%) {7} to go"
string = string.format(content, current_length, current_location, remaining_length,
current_progress, overall_progress, percentage, remaining_progress)
string1 = " Finish!!! {0} |{1}{2}| {5}/{5} (100%)"
string1 = string1.format(content, current_length, current_location, remaining_length,
current_progress, overall_progress, percentage, remaining_progress)
④检测是否完成,做出相应调整
if percentage == 100:
difference_space = len(string) - len(string1) + 10
string = string1 + difference_space * " "
⑤返回结果
return (string)
代码段
def get_progress_bar(content, current_progress, overall_progress, size=1, stylelist=["=", "□", "-"]):
remaining_progress = overall_progress-current_progress
current_length = int(current_progress*size-1)*stylelist[0]
current_location = stylelist[1]
remaining_length = int(remaining_progress*size)*stylelist[2]
percentage = int((current_progress/overall_progress)*100)
string = "Working... {0} |{1}{2}{3}| {4}/{5} ({6}%) {7} to go"
string = string.format(content, current_length, current_location, remaining_length,
current_progress, overall_progress, percentage, remaining_progress)
string1 = " Finish!!! {0} |{1}{2}| {5}/{5} (100%)"
string1 = string1.format(content, current_length, current_location, remaining_length,
current_progress, overall_progress, percentage, remaining_progress)
if percentage == 100:
difference_space = len(string) - len(string1) + 10
string = string1 + difference_space * " "
return (string)
3. 定义完整进度条展示函数
①定义函数名
def get_progress_bar(
content,
current_progress,
overall_progress,
size=1,
stylelist=["=","□","-"]
):
②获取一个列表(从1至count+1)
it = range(1,count+1)
③打印为0时的状况
text = get_progress_bar(prefix, 0, count, size, [stylelist[2], stylelist[2], stylelist[2]])
file.write("\r"+text)
④打印不为0时的状况
for item in it:
time.sleep(times)
text = get_progress_bar(prefix, item, count, size, stylelist)
file.write("\r"+text)
⑤打印结束后换行
file.write("\n")
代码段
def progressbar(count, prefix="", times=0.2, size=1, stylelist=["=", "□", "-"], file=sys.stdout):
it = range(1,count+1)
text = get_progress_bar(prefix, 0, count, size, [stylelist[2], stylelist[2], stylelist[2]])
file.write("\r"+text)
for item in it:
time.sleep(times)
text = get_progress_bar(prefix, item, count, size, stylelist)
file.write("\r"+text)
file.write("\n")
4. 调用运行函数
if __name__ == "__main__":
progressbar(count=3, times=0.5, size=2)
完整代码
import time
import sys
def get_progress_bar(content, current_progress, overall_progress, size=1, stylelist=["=", "□", "-"]):
remaining_progress = overall_progress-current_progress
current_length = int(current_progress*size-1)*stylelist[0]
current_location = stylelist[1]
remaining_length = int(remaining_progress*size)*stylelist[2]
percentage = int((current_progress/overall_progress)*100)
string = "Working... {0} |{1}{2}{3}| {4}/{5} ({6}%) {7} to go"
string = string.format(content, current_length, current_location, remaining_length,
current_progress, overall_progress, percentage, remaining_progress)
string1 = " Finish!!! {0} |{1}{2}| {5}/{5} (100%)"
string1 = string1.format(content, current_length, current_location, remaining_length,
current_progress, overall_progress, percentage, remaining_progress)
if percentage == 100:
difference_space = len(string) - len(string1) + 10
string = string1 + difference_space * " "
return (string)
def progressbar(count, prefix="", times=0.2, size=1, stylelist=["=", "□", "-"], file=sys.stdout):
it = range(1,count+1)
text = get_progress_bar(prefix, 0, count, size, [stylelist[2], stylelist[2], stylelist[2]])
file.write("\r"+text)
for item in it:
time.sleep(times)
text = get_progress_bar(prefix, item, count, size, stylelist)
file.write("\r"+text)
file.write("\n")
if __name__ == "__main__":
progressbar(count=3, prefix="Python", times=0.5, size=2)