| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

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

项目主页:http://www.open-open.com/lib/view/home/1439112227379

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1439112227379.html
pb Google Go/Golang开发