1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python程序命令行输出记录到log文件中

python程序命令行输出记录到log文件中

时间:2022-04-24 13:35:14

相关推荐

python程序命令行输出记录到log文件中

$ python xxx.py args1 >> data/log.txt第一条命令的含义是:将xxx.py这个python文件中print()原本输出到console的内容重定向到"data/log.txt"文件中。(“>>”是追加,“>”是直接写入,即会发生覆盖);$ python xxx.py args1 | tee -a data/log.txt第二条命令使用了tee命令,在保证xxx.py文件运行时将print内容输出到控制台的同时,还把这些内容保存在"data/log.txt"文件中。

问题

因为在python中,重定向和输出到控制台的内容会先被存在缓冲区中暂存,当它遇到换行符“\n”,或者缓存区的数据积累到一定的量的时候,就会将内容写到重定向的文件或者控制台中。

所以有的时候会发生比较蛋疼的情况,那就是可能要间隔很久,你才会看到你的"data/log.txt"中有内容;或者控制台才有内容显示。

解决

python的print()函数有个参数叫"flush",将它设为True,程序运行到该条输出内容时就会将缓存区的内容写出一次。即

print("abcdefghijklmnopqrst", flush=True)

命令行运行py文件的时候,加上一个命令行参数"-u"。即

python -u xxx.py args1 | tee -a data/log.txt

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。