我有这段代码:
def get_endpoint(type):
return "%s/%s.json" % (v2_endpoint,type)
def get_entities(type,endpoint=None,entities=None):
if not endpoint:
endpoint=get_endpoint(type)
entities=[]
r=requests.get(endpoint,headers=header)
entities.extend(r.json()[type])
if not 'next' in r.links:
return entities
else:
return get_entities(type,r.links['next']['url'],entities)
print "Fetching info from New Relic....",
servers = get_entities('servers')
applications = get_entities('applications')
print "Done."
我注意到它在处理这些函数之前不会打印第一个和最后一个打印语句。我猜想,预期的行为。
那么,如何在开始处理函数之前打印第一行?
答案 0 :(得分:6)
print "Fetching info from New Relic....",
尾随逗号表示打印件不应在末尾添加换行符。但是,如果没有换行符,大多数控制台都不会刷新输出,因此在打印换行符之前看不到输出。
如果删除逗号,则可以看到它可以正常工作。
但是,您可以手动刷新输出而不打印换行符。但您需要手动执行此操作:
import sys
print "Fetching info from New Relic....",
sys.stdout.flush()
# do stuff
print "Done"