[golang]golang如何覆盖输出console,实现进度条;golang一个骚气的进度提示库

本文介绍在Golang中如何使用os.Stdout实现控制台输出的覆盖,以创建进度条效果,并展示了briandowns/spinner库的使用,该库提供多种字符集样式,用于在终端应用程序中添加旋转指示器或进度提示。

 

[golang]golang如何覆盖输出console,实现进度条

 

 

 

package main

import(
        "fmt"
        "os"
        "time"
)

func main(){
        for i :=0;i!=10;i=i+1{
                fmt.Fprintf(os.Stdout,"result is %d\r",i)
                time.Sleep(time.Second*1)
        }
        fmt.Println("Over")
}

 golang一个骚气的进度提示库

spinner is a simple package to add a spinner / progress indicator to any terminal application. Examples can be found below as well as full examples in the examples directory.

For more detail about the library and its features, reference your local godoc once installed.

Contributions welcome!

安装

go get -u -v github.com/briandowns/spinner

下面是效果图

(Numbered by their slice index)

indexcharacter setsample gif
0←↖↑↗→↘↓↙Sample Gif
1▁▃▄▅▆▇█▇▆▅▄▃▁Sample Gif
2▖▘▝▗Sample Gif
3┤┘┴└├┌┬┐Sample Gif
4◢◣◤◥Sample Gif
5◰◳◲◱Sample Gif
6◴◷◶◵Sample Gif
7◐◓◑◒Sample Gif
8.oO@*Sample Gif
9```/-```
10◡◡⊙⊙◠◠Sample Gif
11⣾⣽⣻⢿⡿⣟⣯⣷Sample Gif
12>))'> >))'> >))'> >))'> >))'> <'((< <'((< <'((<Sample Gif
13⠁⠂⠄⡀⢀⠠⠐⠈Sample Gif
14⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏Sample Gif
15abcdefghijklmnopqrstuvwxyzSample Gif
16▉▊▋▌▍▎▏▎▍▌▋▊▉Sample Gif
17■□▪▫Sample Gif
18←↑→↓Sample Gif
19╫╪Sample Gif
20⇐⇖⇑⇗⇒⇘⇓⇙Sample Gif
21⠁⠁⠉⠙⠚⠒⠂⠂⠒⠲⠴⠤⠄⠄⠤⠠⠠⠤⠦⠖⠒⠐⠐⠒⠓⠋⠉⠈⠈Sample Gif
22⠈⠉⠋⠓⠒⠐⠐⠒⠖⠦⠤⠠⠠⠤⠦⠖⠒⠐⠐⠒⠓⠋⠉⠈Sample Gif
23⠁⠉⠙⠚⠒⠂⠂⠒⠲⠴⠤⠄⠄⠤⠴⠲⠒⠂⠂⠒⠚⠙⠉⠁Sample Gif
24⠋⠙⠚⠒⠂⠂⠒⠲⠴⠦⠖⠒⠐⠐⠒⠓⠋Sample Gif
25ヲァィゥェォャュョッアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワンSample Gif
26. .. ...Sample Gif
27▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▏▎▍▌▋▊▉█▇▆▅▄▃▂▁Sample Gif
28.oO°Oo.Sample Gif
29+xSample Gif
30v<^>Sample Gif
31>>---> >>---> >>---> >>---> >>---> <---<< <---<< <---<< <---<< <---<<Sample Gif
32``` 
33[] [=] [==] [===] [====] [=====] [======] [=======] [========] [=========] [==========]Sample Gif
34(*---------) (-*--------) (--*-------) (---*------) (----*-----) (-----*----) (------*---) (-------*--) (--------*-) (---------*)Sample Gif
35█▒▒▒▒▒▒▒▒▒ ███▒▒▒▒▒▒▒ █████▒▒▒▒▒ ███████▒▒▒ ██████████Sample Gif
36[ ] [=> ] [===> ] [=====> ] [======> ] [========> ] [==========> ] [============> ] [==============> ] [================> ] [==================> ] [===================>]Sample Gif
37? ? ? ? ? ? ? ? ? ? ? ?Sample Gif
38? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Sample Gif
39? ? ?Sample Gif
40◜ ◝ ◞ ◟Sample Gif
41⬒ ⬔ ⬓ ⬕Sample Gif
42⬖ ⬘ ⬗ ⬙Sample Gif
43[>>> >] []>>>> [] [] >>>> [] [] >>>> [] [] >>>> [] [] >>>>[] [>> >>]Sample Gif

示例

package main

import (
    "github.com/briandowns/spinner"
    "time"
)

func main() {
    s := spinner.New(spinner.CharSets[9], 100*time.Millisecond)  // Build our new spinner
    s.Start()                                                    // Start the spinner
    time.Sleep(4 * time.Second)                                  // Run for some time to simulate work
    s.Stop()
}

更多内容请看github

https://github.com/briandowns/spinner

 







转载于:https://www.cnblogs.com/landv/p/11543342.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值