最简单的python输出重定向
#将输出重定向追加至txt文本
import sys
with open('train_loss_acc_log.txt', 'a') as f:
sys.stdout = f
print("Hello World")
f.close()
#写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。
#只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。
#忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。
#确实,你print到重定向的文件中,并不会按照代码逻辑顺序立刻写入过去,因为系统IO输出都是先输出到缓冲区,缓冲区满了才会真正写入到文件.
#因此open file后print的东西是在你f.closed()之后才会真正执行写入到文件中.
#因此,要想实时输出就要刷新缓冲区!