本文共 860 字,大约阅读时间需要 2 分钟。
From:
环境:linux
一段执行时间很长的程序(用python做hive客户端执行mapreduce) 在linux后台执行,把结果输出到某文件:
遇到的问题,程序没报错,文件里却什么都没有,没有输入进去。为什么呢?
于是我首先尝试用:
预料之中 还是不行。
于是我做实验:
写了个test.py:
每秒打印一次
我直接用python text.py 执行 没问题 每秒输出一个数
但我在后台执行:
还是不行。开始不输出 直到程序执行完,一次性的写到log.log文件了。
为什么呢?
原因可能是python 的print 先写到缓冲区了,还没flush到文件。
于是加了一行“ sys.stdout.flush() ” --在每次print后都flush一次。:
问题解决。
转载地址:http://ppbci.baihongyu.com/