博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python文件处理之文件写入方式与写缓存(三)
阅读量:7107 次
发布时间:2019-06-28

本文共 1143 字,大约阅读时间需要 3 分钟。

Python的open的写入方式有:

  write(str):将str写入文件

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

 

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

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

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

1 f = open('blogCblog.txt', 'w')  #首先先创建一个文件对象,打开方式为w2 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()方法,就会把缓冲区的剩下数据写入到文件中。

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

 

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

 

转载于:https://www.cnblogs.com/blogCblog/p/5597930.html

你可能感兴趣的文章
Python3.5爬取cbooo.cn数据并且同步到mysql中
查看>>
SQLServer性能优化专题
查看>>
Gradle安装使用以及基本操作
查看>>
VM_Centos7.3_X64_安装Oracle12C 总结笔记
查看>>
JS JSOP跨域请求实例详解
查看>>
java反射--方法反射的基本操作
查看>>
爬取本blog的所有标题和链接
查看>>
普通用户使用的命令-系统信息查看类命令
查看>>
【转】一次SpringMVC+ Mybatis 配置多数据源经历
查看>>
exception is the version of xbean.jar correct
查看>>
Hibernate demo之使用注解
查看>>
.NET Core 实现定时抓取博客园首页文章信息并发送到邮箱
查看>>
CSDN日报20170416 ——《为什么程序猿话少钱多死得早?》
查看>>
Retrofit网络框架入门使用
查看>>
Oracle-PLSQL提示“记录被另一个用户锁住”
查看>>
GetBulkRequest PDU的应用
查看>>
使用 JavaScript开发的跨平台音乐、书籍播放器
查看>>
[na]完全理解icmp协议
查看>>
高级语言基本特性
查看>>
Socket 与 WebSocket
查看>>