相关疑难解决方法(0)

在终端上打印颜色?

如何在Python中将彩色文本输出到终端?表示实体块的最佳Unicode符号是什么?

python unicode terminal ansi-colors

1929
推荐指数
51
解决办法
110万
查看次数

控制台中的文本进度条

有一个很好的方法来做到以下几点?

我写了一个简单的控制台应用程序,使用ftplib从FTP服务器上传和下载文件.

每次下载一些数据块时,我都想更新文本进度条,即使它只是一个数字.

但我不想删除所有打印到控制台的文本.(执行"清除"然后打印更新的百分比.)

python console updating progress

388
推荐指数
15
解决办法
29万
查看次数

Python打印状态栏和百分比

要实现如下状态栏:

[==========                ]  45%
[================          ]  60%
[==========================] 100%
Run Code Online (Sandbox Code Playgroud)

我希望将它打印到stdout,并保持刷新,而不是打印到另一行.这该怎么做?

python

140
推荐指数
12
解决办法
15万
查看次数

Jupyter笔记本中的tqdm

我正在使用tqdm我在Jupyter笔记本中运行的脚本中打印进度.我通过打印所有消息到控制台tqdm.write().但是,这仍然给我一个偏差的输出,如下所示:

在此输入图像描述

也就是说,每次必须打印新行时,下一行都会打印一个新的进度条.当我通过终端运行脚本时,这不会发生.我怎么解决这个问题?

python jupyter-notebook tqdm

100
推荐指数
8
解决办法
7万
查看次数

Python进度条和下载

我有一个python脚本,它启动一个可下载文件的URL.有没有办法让python使用命令行显示下载进度而不是启动浏览器?

python python-2.7

52
推荐指数
8
解决办法
5万
查看次数

Jupyter Notebooks 不显示进度条

我正在尝试在 Jupyter 笔记本中设置一个进度条。这是一台新电脑,我通常做的事情似乎不起作用:

from tqdm import tqdm_notebook
example_iter = [1,2,3,4,5]
for rec in tqdm_notebook(example_iter):
    time.sleep(.1)
Run Code Online (Sandbox Code Playgroud)

产生以下文本输出并且不显示任何进度条

HBox(children=(IntProgress(value=0, max=5), HTML(value='')))
Run Code Online (Sandbox Code Playgroud)

同样,这段代码:

from ipywidgets import FloatProgress
from IPython.display import display
f = FloatProgress(min=0, max=1)
display(f)
for i in [1,2,3,4,5]:
    time.sleep(.1)
Run Code Online (Sandbox Code Playgroud)

产生这个文本输出:

FloatProgress(value=0.0, max=1.0)
Run Code Online (Sandbox Code Playgroud)

我是否缺少让 Jupyter 显示这些进度条的设置?

python jupyter-notebook tqdm jupyter-lab

32
推荐指数
3
解决办法
3万
查看次数

tqdm打印到换行符

我正在python中进行一个小型命令行游戏,我正在使用tqdm模块显示进度条.我使用msvcrt模块监听用户输入以中断进度.一旦中断,用户可以通过在命令行提示符中输入"restart"来重新启动.第二次显示进度条,而不是使用进度更新同一行,它每次都会创建一个新行.

我如何才能在同一条线上显示进度?

进度条问题

此代码段说明了我对进度条的使用.

def transfer():
    for i in tqdm.tqdm(range(1000), desc="Transfer progress", ncols=100, bar_format='{l_bar}{bar}|'):
        sleep(.1)
        if msvcrt.kbhit():
            if msvcrt.getwche() == ' ':
                interrupt()
                break

def interrupt():
    type("File transfer interrupted, to restart the transfer, type 'restart'")
Run Code Online (Sandbox Code Playgroud)

python progress-bar tqdm

24
推荐指数
9
解决办法
9645
查看次数

如何用Pillow绘制进度条?

我目前正在尝试根据计算的百分比绘制进度条。

但是,我无法以正确的格式显示它。

我将自己定位在这个网站的另一个答案(How do you make a Progress Bar and put it on an image? & Is it possible to add a blue bar using PIL or Pillow?

但要么是进度条太长而width限制不起作用,要么进度条显示没有进度。

示例1:

async def rank(self, ctx, member: discord.Member):
    member = ctx.author

    data = await database.find_user(collection_user, ctx.guild.id, ctx.author.id)
    already_earned = data["exp"]

    to_reach= ((50 * (data['lvl'] ** 2)) + (50 * (data['lvl'] - 1)))
    
    percentage = ((data["exp"] / next_level_xp ) * 100) # Get the percentage

    ## Rank card
    img …
Run Code Online (Sandbox Code Playgroud)

python python-imaging-library discord.py

7
推荐指数
1
解决办法
1354
查看次数

只显示一个记录行,删除以前的记录行

我有一个程序使用logging模块和print语句.例如,日志记录是告知用户程序正在做什么

logging.info("downloading HTML")
time.sleep(1)
logging.info("parsing HTML")
time.sleep(1)
print "the result"
Run Code Online (Sandbox Code Playgroud)

最后屏幕上的输出(混合stdout和stderr)将是:

INFO:downloading HTML
INFO:parsing HTML
the result
Run Code Online (Sandbox Code Playgroud)

我想在显示下一个日志记录输出或调用打印时隐藏最后一个日志记录输出.例如,启动程序,您将看到:

INFO:download HTML
Run Code Online (Sandbox Code Playgroud)

等一下,下一个信息"parsing HTML"将替换上一个"downloading HTML",所以在屏幕上你只会看到:

INFO:parsing HTML
Run Code Online (Sandbox Code Playgroud)

之前别无其他,等一秒,我只想在屏幕上看到:

"the result"
Run Code Online (Sandbox Code Playgroud)

我只想在登录stderr时想要这个功能,而不是在登录文件时,例如,我希望看到所有logging输出.

可能吗?

python logging formatter

6
推荐指数
1
解决办法
3961
查看次数

在蟒蛇中的刽子手:有线被替换?

我正在努力用我目前所知的Python编写一个简单的Hangman游戏(我正在以艰难的方式学习Python),到目前为止我有这个:

from sys import argv
import random

script_name, dict_file = argv

hang_list = open(dict_file).read().splitlines()
hang_list = filter(None, hang_list) 
word = random.choice(hang_list)

guesses = ''

def compare_words():
    global guesses
    new_word = ''
    for char in word:
        if char in guesses: 
            new_word += char
        else:
            new_word += "_"
    return new_word

def test_letter():
    global guesses
    letter = raw_input("Guess a letter: ")
    guesses += letter
    new_word = compare_words()
    print "\nCurrent guesses: %s" % guesses
    print "%s\n\n" % new_word
    if new_word == word:
        print "You …
Run Code Online (Sandbox Code Playgroud)

python scripting

6
推荐指数
1
解决办法
185
查看次数