我希望能够在命令行上用简单的PHP脚本显示进度表.而不是看到
Progress: 0%
Progress: 1%
etc...
Run Code Online (Sandbox Code Playgroud)
我只想更改数字,并替换以前的数字,就像git clone那样Resolving deltas: 100% (8522/8522), done..
在搜索这个时,我发现在Perl中回答了同样的问题,这是完美的,但我在PHP中找不到它.可能吗?如果没有,我会诉诸C.
谢谢
更新:如果有人对C++版本感兴趣,它就在这里.
在Unix上,我可以使用\ r(回车)或\ b(退格)来打印在shell中已经可见的文本(即再次覆盖当前行).
我可以从Python脚本在Windows命令行中实现相同的效果吗?
我尝试了curses模块,但它似乎在Windows上不可用.
我正在寻找一个可以在Windows下添加ANSI支持的Python模块.
这意味着在导入模块后,如果输出ANSI转义字符串,它们将相应地显示.
我前几天在Windows 2000上下载了一个编译器(我认为它是MinGW,但我不确定)(我通常是Mac用户,但它不是我的机器),下载器是MS-DOS命令行应用程序,它将显示下载的进度条.像这样......
|--- | 15%
...
|------ | 30%
...
...
|-------------- | 70%
Run Code Online (Sandbox Code Playgroud)
除了它会在同一行上不断更新.我假设程序通过删除以前打印的字符并重新打印不同的字符来完成此操作,但我似乎无法弄清楚如何执行此操作.
我曾试图用几种不同的方式打印'删除'字符,比如(char)8和\b(甚至\r,我听说在一些语言中回溯到行的开头),但这些都没有用.
有谁知道怎么做这种东西?
编辑:此问题已成为特定于平台的问题.我想具体了解如何在Mac上完成此操作.
我的Python程序执行一系列操作并打印一些诊断输出.我还希望有一个像这样的进度计数器:
Percentage done: 25%
Run Code Online (Sandbox Code Playgroud)
数量增加"到位".如果我只使用字符串语句,我可以编写单独的数字,但这会使屏幕变得杂乱.有没有办法实现这一点,例如使用一些转义字符为退格键清除数字并写下一个?
谢谢
可能重复:
如何在C++中从命令行删除打印的字符
我的问题是,如何在C++中运行控制台窗口时更改文本.例如.
如果我要显示这个.
cout<<"0%";
cout<<"25%";
cout<<50%";
cout<<75%";
cout<<"100%";
Run Code Online (Sandbox Code Playgroud)
它会产生5个不同的单词.如果我希望它显示0%然后25%并且需要创建一个新单词,IE将当前0%替换为25%,该怎么办?这甚至可能吗?提前致谢.
所以我有一个需要很长时间才能完成的函数我想知道如何为该函数制作进度条,代码如下所示
def some_function():
#do something
#do something
#do something
print('finished')
Run Code Online (Sandbox Code Playgroud)
输出
[========== ] 40%
[============== ] 60%
[================= ] 80%
finished
[===================] 100%
Run Code Online (Sandbox Code Playgroud)
如果能在同一个地方更新就好了
我正在编写一个进度条,如何为命令行设置动画?提示.我使用Pycharm并在运行工具窗口中运行此文件.
import time
def show_Remaining_Time(time_delta):
print('Time Remaining: %d' % time_delta, end='\r', flush=True)
if __name__ == '__main__':
count = 0
while True:
show_Remaining_Time(count)
count += 1
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行此.py文件,代码将不显示任何内容.我究竟做错了什么?
我试过Jogger的建议,但是如果我使用print函数它仍然无法正常工作.
但是,以下脚本按预期工作.
import time
import sys
def show_Remaining_Time(time_delta):
sys.stdout.write('\rtime: %d' % time_delta) # Doesn't work if I use 'time: %d\r'
sys.stdout.flush()
if __name__ == '__main__':
count = 0
while True:
show_Remaining_Time(count)
count += 1
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
我现在有两个问题:
为什么stdout工作但print()没有.
为什么如何设置命令行的动画?建议追加\r到最后我必须在我的情况下开始写它?
System.out.println();我只是想知道当我使用批处理文件运行程序时是否有一种方法或其他方法可以创建一个很酷的加载栏。
这里真正的问题是如何使这个栏看起来好像只打印在一行上。
我不希望它分布在多行上,如下所示:
[aaaaaccccccccccccccc] 25%
[aaaaaaaaaacccccccccc] 50%
[aaaaaaaaaaaaaaaccccc] 75%
Run Code Online (Sandbox Code Playgroud)
保持干净的位置会让事情变得更干净、更友好。
非常感谢,
查士丁
编辑:
好的。我设法在这里找到这个链接:How to animate the command line? ,但答案是:
在 Java 中是否有更好的方法来做到这一点?
编辑:
这就是我最终的结果:
static final int PROGRESSBAR_LENGTH = 20;
public static void drawProgressBar(int numerator, int denominator) {
int percent = (int) (((double) numerator / (double) denominator) * 100);
String bar = "[";
int lines = round((PROGRESSBAR_LENGTH * numerator) / denominator);
int blanks = PROGRESSBAR_LENGTH - lines;
for (int i = 0; i …Run Code Online (Sandbox Code Playgroud) python ×5
command-line ×4
c++ ×2
ansi-escape ×1
autoflush ×1
batch-file ×1
console ×1
jar ×1
java ×1
overwrite ×1
php ×1
pycharm ×1
python-3.4 ×1
stdout ×1
terminal ×1
windows ×1