Python 命令行用户界面

2 投票
2 回答
1195 浏览
提问于 2025-04-15 23:09

大家好,我正在写一个Python脚本,用来修复我数据库中的一些重复问题。我想给用户显示一些进度状态,目前我只是这样打印:

print "Merged " + str(idx) + " out of " + str(totalCount);

问题是,每处理一条记录就换一行打印,这样看起来不太好 :) 我希望能在同一行上一直打印这个信息,或者使用一些聪明的小工具来显示成进度条的样子。

我打算在命令行上运行这个,任何建议都非常感谢。

2 个回答

4

可以看看这个链接:fish

4

如果你只是想不断地覆盖同一行,可以使用 '\r'print foo, 这两个来实现。这里的 '\r' 是一个回车符,可以让光标回到行的开头,而 print 后面加个逗号则表示不换行打印。

while doingStuff:
    msg = "\rMerged %s out of %s" % (idx, totalCount)
    print msg,

不过,如果你想设计一个更复杂的控制台应用程序,可能需要看看 curses 这个库(不过它只适用于Unix系统)。

撰写回答