Python读写文件需要注意的地方 2015-03-31 23:19 69人阅读 评论(0) 收藏
2024-09-10 08:57:15
<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
版权声明:本文为博主原创文章,未经博主允许不得转载。
最新文章
- Base64编码原理分析
- JS调用OC方法并传值,OC调用JS方法并传值////////////////////////zz
- faceBook Pop动画库手动添加版本
- InnoDB源码分析--缓冲池(二)
- MMO可见格子算法
- 使用Windows PE的U盘安装win7
- 解决Surface Pro外接移动硬盘经常睡眠的问题
- DCMTK开源库的学习笔记4:利用ini配置文件对dcm影像进行归档
- [转]处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- 配置Git自动补全功能
- android学习日记12--布局管理器
- Asp.Net 5使用Area及自定义Area
- “死锁” 与 python多线程之threading模块下的锁机制
- 负载均衡集群之LVS算法和模型
- Swift - 运算符重载和运算符函数
- 更新android SDK的问题
- CA认证和颁发吊销证书
- JavaScript Html页面加载完成
- 【小白学C#】浅谈.NET中的IL代码
- Connecting Elixir Nodes with libcluster, locally and on Kubernetes