码迷,mamicode.com
首页 > 编程语言 > 详细

Python文件处理之文件写入方式与写缓存(三)

时间:2016-10-12 22:02:49      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

Python的open的写入方式有:

  write(str):将str写入文件

  writelines(sequence of strings):写多行到文件,参数为可迭代对象

 

首先来看下writelines()这个方法:

1 f = open(blogCblog.txt‘, w‘)  #首先先创建一个文件对象,打开方式为w
2 f.writelines(123456‘)  #用readlines()方法写入文件

运行上面结果之后,可以看到blogCblog.txt文件有123456内容,这里需要注意的是,mode为‘w’模式(写模式),再来看下面代码:

1 f = open(blogCblog.txt‘, w‘)  #首先先创建一个文件对象,打开方式为w
2 f.writelines(123456)  #用readlines()方法写入文件

运行上面代码之后会报一个TypeError,这是因为writelines传入的参数并不是一个可迭代的对象。

 

接着来看write方法:

技术分享

可以看到在cmd运行上面代码,明明用write写入blogCblog这个字符串,但在blogCblog.txt这个文件里面没有blogCblog这个字符串喔,也就是没有写入成功,为什么?接着来看下这段代码:

技术分享

这段代码写入了10000行blogCblog字符串,打开blogCblog.txt文件发现,有内容,但只有9000多行,不是10000吗,怎么写入一个blogCblog就不成功呢?其实,Python写入过程中是把字符串写入一个叫缓冲区中,当你写入的字节大于或等于缓冲区的大小,就会自动写入到文件中,而当你写入的字节小于缓冲区的大小,就会一直存在缓冲区中。

解决这种问题的方法就是调用close()方法,先清空blogCblog.txt这个文件里的内容,再运行下面代码:

技术分享

你会发现blogCblog.txt文件里有blogCblog这个字符串了,这是close()的功劳

同样的,当你写入一个大于或等于缓冲区大小的数据时,虽然没有调用close()也会写入一部分数据,这是因为缓冲区装不下那么大的数据,会自动的写入到你的文件中,剩下的数据因为小于缓冲区的大小,所以会存在缓冲区中,这就是当你写入大于或等于缓冲区大小的数据时,只写入一部分的原因,这时,只需调用close()方法,就会把缓冲区的剩下数据写入到文件中。

所以,当你操作完文件后,千万别忘了关闭!!!

 

另外:如果你没有关闭,就删除不掉这个文件,因为你进程占用了!还有当你打开这个文件很很多次并不关闭的话就会打开失败!

Python文件处理之文件写入方式与写缓存(三)

标签:

原文地址:http://www.cnblogs.com/harvey888/p/5954381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!