我目前正在用C++编写的python中重写一个小包装器程序.它从文件中提取文件并以另一种格式将其打包.
在C++中,我需要运行的系统命令的输出是"实时",即状态栏和实时显示的某些命令的百分比指示器.使用python,我将每个'百分比'单独地放在屏幕上(因为我逐行读取).这是一个例子:这是一个状态栏在python版本中的样子(这一直持续到100).在C++中,它确实会更新自己.
| (02/100)\rImporting AVC-H264: | | (03/100)\rImporting AVC-H264: | | (04/100)\rImporting AVC-H264: |=
Run Code Online (Sandbox Code Playgroud)
那是相应的python代码:
p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
for line in iter(p.stdout.readline, ""):
print line,
Run Code Online (Sandbox Code Playgroud)
关于如何使它看起来像在C++中的任何想法?
我正在努力学习一些红宝石.想象一下,我正在循环并执行一个长时间运行的过程,在这个过程中,我想在必要时获得一个微调器.
所以我能做到:
a=['|','/','-','\\']
aNow=0
# ... skip setup a big loop
print a[aNow]
aNow += 1
aNow = 0 if aNow == a.length
# ... do next step of process
print "\b"
Run Code Online (Sandbox Code Playgroud)
但我认为做得更干净:
def spinChar
a=['|','/','-','\\']
a.cycle{|x| yield x}
end
# ... skip setup a big loop
print spinChar
# ... do next step of process
print "\b"
Run Code Online (Sandbox Code Playgroud)
当然,spinChar调用想要一个块.如果我给它一个块,它将无限期地挂起.
我怎样才能得到这个街区的下一个?