use*_*814 12 python linux
我在python中做print语句.我正在执行我的脚本:
python script.py > out.log nohup &
打印报表并未全部显示,out.log但程序正在完成.
out.log
那行代码在.sh我执行的文件中./script.sh
.sh
./script.sh
更新:日志确实获取所有数据,但直到打印出一定数量的行.它似乎是在缓冲输出.
Joh*_*ica 25
当stdout被发送到tty时,它将被行缓冲并且将被刷新每一行,但是当重定向到文件或管道时,它将被完全缓冲,并且只有在超出缓冲区时才会定期刷新.
sys.stdout.flush()如果希望输出立即可见,则必须在每行之后添加调用,或者完全禁用缓冲.有关执行后者的方法,请参阅禁用输出缓冲:
sys.stdout.flush()
使用-u命令行开关 包装sys.stdout在每次写入后刷新的对象 设置PYTHONUNBUFFEREDenv var sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
-u
sys.stdout
PYTHONUNBUFFERED
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
归档时间:
15 年,10 月 前
查看次数:
3701 次
最近记录:
15 年,6 月 前