我想做几个语句,给出标准输出,而不会在语句之间看到换行符.
具体来说,假设我有:
for item in range(1,100):
print item
Run Code Online (Sandbox Code Playgroud)
结果是:
1
2
3
4
.
.
.
Run Code Online (Sandbox Code Playgroud)
如何让它看起来像:
1 2 3 4 5 ...
Run Code Online (Sandbox Code Playgroud)
更妙的是,是否可以打印单号在最后一个号码,所以只有一个号码在屏幕上在同一时间?
我想知道是否有可能删除你用Python打印的项目 - 不是从Python GUI,而是从命令提示符.例如
a = 0
for x in range (0,3):
a = a + 1
b = ("Loading" + "." * a)
print (a)
Run Code Online (Sandbox Code Playgroud)
所以它打印
>>>Loading
>>>Loading.
>>>Loading..
>>>Loading...
Run Code Online (Sandbox Code Playgroud)
但是,我的问题是我希望这一切都在一条线上,为此它会在其他东西出现时自行删除它.因此,不是打印"Loading", "Loading.", "Loading...我希望它打印"Loading.",然后它删除行上的内容并替换它,"Loading.."然后删除"Loading.."并替换它(在同一行)"Loading...".这很难描述.
ps我试图使用Backspace字符,但它似乎不起作用("\b")
谢谢
可能重复:
Python输出缓冲
有没有办法从我的代码中获得运行python -u的效果?如果失败了,我的程序可以检查它是否在-u模式下运行并退出并显示错误消息,如果没有?这是在linux上(ubuntu 8.10服务器)
我试图在处理之前和之后打印到控制台,这在 Django 管理命令中需要一段时间,如下所示:
import requests
import xmltodict
from django.core.management.base import BaseCommand
def get_all_routes():
url = 'http://busopen.jeju.go.kr/OpenAPI/service/bis/Bus'
r = requests.get(url)
data = xmltodict.parse(r.content)
return data['response']['body']['items']['item']
class Command(BaseCommand):
help = 'Updates the database via Bus Info API'
def handle(self, *args, **options):
self.stdout.write('Saving routes ... ', ending='')
for route in get_all_routes():
route_obj = Route(
route_type=route['routeTp'], route_id=route['routeId'], route_number=route['routeNum'])
route_obj.save()
self.stdout.write('done.')
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,Saving routes ...预计在循环开始之前打印,并done.在循环完成时在它旁边打印,以便它看起来像Saving routes ... done.最后。
但是,前者在循环完成之前不会打印,当两个字符串最终同时打印时,这不是我所期望的。
我发现了这个问题,答案建议刷新输出 ie self.stdout.flush(),所以我将其添加到我的代码中:
def handle(self, *args, …Run Code Online (Sandbox Code Playgroud)