Im打印两行,这两行都使用\r和%来替换各自打印行中的%d或%s。问题是它们会互相交叉。
def pinging():
average_list = []
max_list = []
host_list = host_string(ptype)
numberitems = len(host_list)
counter = 0
for i in range(0,len(host_list)):
counter += 1
print('Pinged:%d' % i,"of",numberitems, end='r')
try:
ping = subprocess.check_output(['ping','-c',num_pings,host_list[i]],timeout=sec_timeout)
except subprocess.TimeoutExpired:
print('Timeout:%s' % host_list[i], end="r")
continue
ping = str(ping)
ravg,rmax = string_configure(ping,host_list[i],num_pings)
average_list.append(ravg)
max_list.append(rmax)
return(average_list,max_list)
我期待两个单独的更新打印行:1 of 25
#等一Timeout: 12.34.56.78
#等
相反,我得到:0 of 25
CCD_ 4#继续这样代替";数字项目";具有从"0"改变的ip地址;host_list";
那么,我该如何阻止这两条打印线相互作用呢?
您的问题是r
只会将光标移回行首,但不会擦除它,因此下一次打印只会写在已写的内容之上,但不会删除下一个字符,因此您将得到两行的混合。
"