相关疑难解决方法(0)

禁用输出缓冲

Python的解释器默认启用输出缓冲sys.stdout吗?

如果答案是肯定的,那么禁用它的所有方法是什么?

建议到目前为止:

  1. 使用-u命令行开关
  2. 包装sys.stdout在每次写入后刷新的对象
  3. 设置PYTHONUNBUFFEREDenv var
  4. sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

是否有任何其他方式来设置一些全局标志sys/ sys.stdout程序执行过程中?

python stdout buffered

487
推荐指数
10
解决办法
25万
查看次数

如何在python中覆盖以前的打印到stdout?

如果我有以下代码:

for x in range(10):
     print x
Run Code Online (Sandbox Code Playgroud)

我会得到的输出

1
2
etc..
Run Code Online (Sandbox Code Playgroud)

我想要做的是不是打印换行符,而是要替换之前的值并用同一行上的新值覆盖它.

python

97
推荐指数
11
解决办法
13万
查看次数

python打印功能实时

我最近切换操作系统,并使用更新的Python(2.7).在我的旧系统上,我曾经能够即时打印.例如,假设我有一个计算密集的for循环:

for i in range(10):
  huge calculation
  print i
Run Code Online (Sandbox Code Playgroud)

然后当代码完成每次迭代时,它会打印出来 i

但是,在我当前的系统上,python似乎缓存了标准输出,以便终端空白几分钟,然后打印:

1
2
3

简而言之.然后,再过几分钟,它会打印出来:

4
5
6

等等.如何在print声明到达声明后立即进行python打印?

python printing stdout flush

12
推荐指数
2
解决办法
7141
查看次数

为什么`print`内容不能在终端中立即显示?

我有一个用于仿真的python脚本,一个for循环要花很长时间,每个循环要花不同的时间,因此我.在每个循环后打印一个,以监视它运行的速度和经过的时间。for脚本运行时的声明。

for something:
    do something
    print '.',
Run Code Online (Sandbox Code Playgroud)

但是,当我在终端中的iPython中运行脚本时,点并不会一一打印,而是在循环结束时一次打印所有点,这使整个过程变得毫无意义。如何在运行时内联打印点?

python macos terminal ipython

5
推荐指数
1
解决办法
7405
查看次数

标签 统计

python ×4

stdout ×2

buffered ×1

flush ×1

ipython ×1

macos ×1

printing ×1

terminal ×1