相关疑难解决方法(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万
查看次数

管道到三通时强制线缓冲标准输出

通常,stdout是行缓冲的.换句话说,只要您的printf参数以换行符结尾,您就可以立即打印该行.使用管道重定向时,这似乎不成立tee.

我有一个C++程序,a它输出字符串,总是被\n终止stdout.

当它由它自己运行时(./a),所有内容都在正确的时间正确打印,正如预期的那样.但是,如果我将它传递给tee(./a | tee output.txt),它会在它退出之前不会打印任何内容,这会使使用的目的失效tee.

我知道我可以通过fflush(stdout)在C++程序中的每次打印操作之后添加一个来修复它.但是有更清洁,更简单的方法吗?例如,是否有一个命令可以运行stdout,即使使用管道也会强行进行行缓冲?

unix buffer stdout pipe tee

103
推荐指数
5
解决办法
5万
查看次数

在rake任务中打印到屏幕

我有一个长期的rake任务.我不时地在屏幕上打印更新,让我知道任务的进展情况.

puts "Almost there..."
Run Code Online (Sandbox Code Playgroud)

我的问题是所有的puts语句似乎都在某处缓冲,直到任务完成后才会打印到屏幕上.此时,它们将立即打印出来.

在任务运行时是否有某种方法强制它们打印?

ruby rake ruby-on-rails

8
推荐指数
1
解决办法
4821
查看次数

如何在jenkins控制台输出中获取python打印结果

我有一个Python脚本打印字符串.现在,当它在Jenkins中运行时,我没有在Jenkins Builds的控制台输出中看到打印的字符串.

无论如何要实现这一目标?

python jenkins

7
推荐指数
2
解决办法
8300
查看次数

autoflush问题

我在一段代码中找到了类似的东西:

use IO::Handle;
autoflush STDOUT 1;
print '';
Run Code Online (Sandbox Code Playgroud)

"打印"的目的是清空可能填充的缓冲区吗?

perl buffer flush

3
推荐指数
1
解决办法
2888
查看次数

标签 统计

buffer ×2

python ×2

stdout ×2

buffered ×1

flush ×1

jenkins ×1

perl ×1

pipe ×1

rake ×1

ruby ×1

ruby-on-rails ×1

tee ×1

unix ×1