首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >print()在copytree()完成之前不会打印

print()在copytree()完成之前不会打印
EN

Stack Overflow用户
提问于 2015-12-10 09:00:42
回答 3查看 139关注 0票数 2

在Python脚本中,我复制了一个目录树,并想要打印一些这样的文本.

代码语言:javascript
复制
print("Copying... ", end="")
shutil.copytree(src, dest)
print("DONE")

但是,在脚本完成之前不会打印文本Copying...

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-10 09:42:48

您需要刷新STDOUT,但不需要将sys.stdout带入画面。print可以为您做到这一点:

代码语言:javascript
复制
print("Copying... ", end="", flush=True)
shutil.copytree(src, dest)
print("DONE")
票数 3
EN

Stack Overflow用户

发布于 2015-12-10 09:03:23

除非手动刷新缓冲区,否则输出流直到行尾才会写入终端。

代码语言:javascript
复制
print("Copying... ", end="")
sys.stdout.flush()
shutil.copytree(src, dest)
print("DONE")

这与您在其他语言(如C和C++ )中发现的行为完全相同,原因也是一样的。

票数 6
EN

Stack Overflow用户

发布于 2015-12-10 09:04:41

使用-u选项启动python解释器,以便使用未缓冲的输出。现在,您的打印消息将立即出现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34197509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档