之前,我都是使用下面这条命令在linux上运行python程序,并将程序输出(print)的内容存放至文件。
1 | nohup python helloworld.py > helloworld.log 2>&1 & |
一般情况下,这条命令是可以将python程序的输出存放至指定文件的。
但我发现,用这条语句运行程序,偶尔会出现没有输出至指定文件(该文件被创建,但长时间不更新内容)的情况。
经过查询,我发现原因是:
默认情况下,python程序在执行时是有输出缓冲的(没有细究,个人理解是需要等输出的内容达到一定量才会输出,有兴趣的小伙伴可以研究一下)
解决该问题的一个方法是:使用python的-u
参数,如下所示。
1 | nohup python -u helloworld.py > helloworld.log 2>&1 & |
作者:@臭咸鱼
转载请注明出处:https://www.cnblogs.com/chouxianyu/
欢迎讨论和交流!