Golang的终端进度条:pb
Golang的终端进度条:pb。
Installation
go get github.com/cheggaaa/pb
Usage
package main import ( "github.com/cheggaaa/pb" "time" ) func main() { count := 100000 bar := pb.StartNew(count) for i := 0; i < count; i++ { bar.Increment() time.Sleep(time.Millisecond) } bar.FinishPrint("The End!") }
Result will be like this:
> go run test.go 37158 / 100000 [================>_______________________________] 37.16% 1m11s
More functions?
// create bar bar := pb.New(count) // refresh info every second (default 200ms) bar.SetRefreshRate(time.Second) // show percents (by default already true) bar.ShowPercent = true // show bar (by default already true) bar.ShowBar = true // no need counters bar.ShowCounters = false // show "time left" bar.ShowTimeLeft = true // show average speed bar.ShowSpeed = true // sets the width of the progress bar bar.SetWidth(80) // sets the width of the progress bar, but if terminal size smaller will be ignored bar.SetMaxWidth(80) // convert output to readable format (like KB, MB) bar.SetUnits(pb.U_BYTES) // and start bar.Start()
Want handle progress of io operations?
// create and start bar bar := pb.New(myDataLen).SetUnits(pb.U_BYTES) bar.Start() // my io.Reader r := myReader // my io.Writer w := myWriter // create multi writer writer := io.MultiWriter(w, bar) // and copy io.Copy(writer, r) // show example/copy/copy.go for advanced example
Not like the looks?
bar.Format("<.- >")
本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
转载本站原创文章,请注明出处,并保留原始链接、图片水印。
本站是一个以用户分享为主的开源技术平台,欢迎各类分享!