如何在Python中将彩色文本输出到终端?表示实体块的最佳Unicode符号是什么?
有一个很好的方法来做到以下几点?
我写了一个简单的控制台应用程序,使用ftplib从FTP服务器上传和下载文件.
每次下载一些数据块时,我都想更新文本进度条,即使它只是一个数字.
但我不想删除所有打印到控制台的文本.(执行"清除"然后打印更新的百分比.)
要实现如下状态栏:
[========== ] 45%
[================ ] 60%
[==========================] 100%
Run Code Online (Sandbox Code Playgroud)
我希望将它打印到stdout,并保持刷新,而不是打印到另一行.这该怎么做?
我正在使用tqdm我在Jupyter笔记本中运行的脚本中打印进度.我通过打印所有消息到控制台tqdm.write().但是,这仍然给我一个偏差的输出,如下所示:
也就是说,每次必须打印新行时,下一行都会打印一个新的进度条.当我通过终端运行脚本时,这不会发生.我怎么解决这个问题?
我有一个python脚本,它启动一个可下载文件的URL.有没有办法让python使用命令行显示下载进度而不是启动浏览器?
我正在尝试在 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中进行一个小型命令行游戏,我正在使用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) 我目前正在尝试根据计算的百分比绘制进度条。
但是,我无法以正确的格式显示它。
我将自己定位在这个网站的另一个答案(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) 我有一个程序使用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编写一个简单的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 ×10
tqdm ×3
ansi-colors ×1
console ×1
discord.py ×1
formatter ×1
jupyter-lab ×1
logging ×1
progress ×1
progress-bar ×1
python-2.7 ×1
scripting ×1
terminal ×1
unicode ×1
updating ×1