Python读写文件需要注意的地方 2015-03-31 23:19 69人阅读 评论(0) 收藏

<span style="font-family: 'Microsoft YaHei'; background-color: rgb(255, 255, 255);">最近使用python写后台程序,发现了一些平时不太注意的地方。</span>

首先,Python与缓冲区的问题:

一个python程序执行,我们想要将其打印输出重定向到log文件,你会发现直到程序执行完,输出才一次性的写到log文件。原因是python 的print 先写到缓冲区了,还没flush到文件。

如果你想随着程序执行就写入。就要加一行“ sys.stdout.flush()” --在每次print后都flush一次。


其次,open和close的问题:

经过多次实践发现,Python只有在遇到file.close()或者整个Python程序正常退出的时候,才会将你file.write()或者重定向输出到文件的内容真正写入到文件。也就是说,如果你的Python程序一直运行在后台,而你的Python程序累死下面这样,那么你永远那看不到文件被写入:

file = open("path_to_your_file",‘a’)
print >>file,"FOOL!"
while 1:
    pass


你必须每次打开文件,写入之后都调用close方法关闭文件,这样,你才能看到一直运行的后台程序向文件的输出。

file = open("path_to_your_file",‘a’)
print >>file,"FOOL!"
file.close()
while 1:
    pass


版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2015-03-31 23:19  PaulWeiHan  阅读(159)  评论(0编辑  收藏  举报