如何立即打印出Python消息到linux stdout

时间:2016-05-21 03:28:37

标签: python linux shell

通常我想在linux中运行我的python代码,如下所示:

nohup python test.py > nohup.txt 2>&1 &

在test.py文件中,我经常使用 print 将一些消息打印到stdout。但实际上我必须等待很长时间才能看到消息被打印到nohup.txt。如何快速打印出来。

2 个答案:

答案 0 :(得分:3)

您可以在flush上致电stdout。如果在print调用后调整代码以刷新缓冲区是可行且切实可行的,请test.py

from sys import stdout
from time import sleep

def log():
    while True:
        print('Test log message')
        # flush your buffer
        stdout.flush()
        sleep(1)

在运行此日志记录测试时,您可以检查nohup.txt文件并查看实时打印的消息。

答案 1 :(得分:2)

确保您已安装test.py

import sys
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) 

这只是为此命令设置缓冲关闭...你应该看到立即输出

(你可能在stdbuf之前需要nohup ......我不确定)

或者......只是放在gulp.task('styles', function(){ return sass('./src/sass/**/*.sass',{ style: 'compressed' }) .on('error', errorLog) .pipe(autoprefixer(autoprefixerOptions)) .pipe(browserSync.stream()) .pipe(cssnano()) .pipe(gulp.dest('./app/build/css/')) /*Add '/' at the end of css */ });

的顶部
.init_array