【问题标题】:Python progressbar2- Display filename under progressbarPython progressbar2-在进度条下显示文件名
【发布时间】:2018-11-03 01:11:08
【问题描述】:

我正在使用 progressbar2 库来显示文件下载的进度条。

我想在进度条行下方(或上方)的行中打印当前下载文件的名称,并将每个文件名打印在同一行。

import progressbar

format_custom_text = progressbar.FormatCustomText(
    'Downloading file:%(f)s',
    dict(
        f='',
    ),
)

bar = progressbar.ProgressBar(widgets=[
    progressbar.Counter(format='[%(value)02d/%(max_value)d]'),
    progressbar.Bar(marker=u'\u2588', fill='.', left='|', right='|'),
    format_custom_text])

for i in bar(range(len(files))):
    format_custom_text.update_mapping(f=files[i])
    client.download_file(file_path=files[i])

例子:

[25/64] |███████████████████████............................| Downloading file: dummyfile.txt

我想要的是更改文件的名称并仍然将其打印在进度条下的同一行。

[25/64] |███████████████████████............................| 

Downloading file: dummyfile.txt

【问题讨论】:

  • 你不能把想要的文件名传给update_mapping()吗?
  • 现在的输出是同一行上的所有内容。我想找到一种在进度条下显示文件名的方法。我编辑了这个问题,所以它会很清楚。

标签: python progress-bar


【解决方案1】:

这对我有用,在终端上:

import time
import progressbar

format_custom_text = progressbar.FormatCustomText(
    '\nDownloading file:%(f)s\033[F',
    dict(
        f='',
    ),
)

bar = progressbar.ProgressBar(widgets=[
    progressbar.Counter(format='[%(value)02d/%(max_value)d]'),
    progressbar.Bar(marker=u'\u2588', fill='.', left='|', right='|'),
    format_custom_text])
files=list(range(1000))
for i in bar(range(len(files))):
    format_custom_text.update_mapping(f=files[i])
    time.sleep(0.1)

【讨论】:

    猜你喜欢
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2011-03-10
    相关资源
    最近更新 更多