为了账号安全,请及时绑定邮箱和手机立即绑定

输出到同一行覆盖以前的输出?python(2.5)

输出到同一行覆盖以前的输出?python(2.5)

幕布斯7119047 2019-08-17 15:36:57
输出到同一行覆盖以前的输出?python(2.5)我正在写一个简单的ftp下载器。代码的一部分是这样的:ftp.retrbinary("RETR " + file_name, process)我正在调用函数进程来处理回调:def process(data):     print os.path.getsize(file_name)/1024, 'KB / ', size, 'KB downloaded!'     file.write(data)和输出是这样的:1784  KB / KB 1829 downloaded!1788  KB / KB 1829 downloaded!etc...但我希望它打印这一行,然后下次重新打印/刷新它只会显示一次,我将看到该下载的进度...怎么做到呢?
查看完整描述

3 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

这是Python 3.x的代码:

print(os.path.getsize(file_name)/1024+'KB / '+size+' KB downloaded!', end='\r')

end=关键字是什么做的工作在这里-在默认情况下,print()在一个换行符(结束\n)字符,但可以使用不同的字符串替换。在这种情况下,使用回车符结束该行会将光标返回到当前行的开头。因此,无需sys为此类简单用法导入模块。print()实际上有许多关键字参数可用于大大简化代码。

要在Python 2.6+上使用相同的代码,请将以下行放在文件的顶部:

from __future__ import print_function


查看完整回答
反对 回复 2019-08-17
  • 3 回答
  • 0 关注
  • 2519 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信