python学习笔记-文件基本操作(二)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python学习笔记-文件基本操作(二),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2761字,纯文字阅读大概需要4分钟。
内容图文
在上一篇文章中,简单介绍了打开文件的方法以及关于读、写、追加的操作,点击此处查看。
在此篇文章中,继续介绍另外一种打开文件的方法和几种同时读写的模式。
一、打开文件方法:with
使用file()或open()打开文件时,最后一定要使用close()方法来关闭文件,为了避免忘记使用,还使用使用with的方法开打开文件,代码如:
with open (‘文件名‘,‘模式‘) as f: ...
其中,f为文件句柄,该打开文件的方式等同于f=open(‘文件名‘,‘模式‘)
此方法也可以一次打开多个文件,如:
with open (‘文件名1‘,‘模式‘) as f1,open(‘文件名2‘,‘模式‘) as f2.....: ...
当文件过多时,会导致一行代码过长的情况,因此推荐使用如下写法:
with open (‘文件名1‘,‘模式‘) as f1, open (‘文件名2‘,‘模式‘) as f2: ...
我们来使用closed()判断文件是否关闭
#使用open()方法打开,不加入close() >>> f=open(‘info.log‘,‘r‘) >>> print f.closed() False #使用open()方法打开,加入close() >>> f=open(‘info.log‘,‘r‘) >>> f.close() >>> print f.closed() True #使用with打开 >>> with open (‘info.log‘,‘r‘): >>> print f.closed() #注意print一定要与with处于同一个结构层次下 True
二、几种同时读写模式
在python中除了普通打开模式(r、w、a)外,还有几种同时读写的模式,包括:
r+:读写,可读可写,若文件不存在,报错
w+:写读,可读可写,创建新文件
a+:追加和读,可读可追加,若文件不存在,则创建
三、指针
为了便于理解同时读写模式,首先引入指针
有一个文件info.log 文件内容如下:
①获取文件句柄所在的指针tell()
例子:
>>> f=file(‘info.log‘,‘r‘) >>> print f.tell() #获取初始时的指针 >>> print f.readline() #读取文件第一行 >>> print f.tell() #获取读完第一行后的指针 >>> f.close() 0 #第一次指针的位置 aaaa 5 #第二次指针的位置
②设置文件句柄所在的指针seek()
例子:
>>> f=file(‘info.log‘,‘r‘) >>> print f.tell() >>> print f.readline() >>> f.seek(3) #设置指针位置 >>> print f.tell() >>> f.close()
四、读写:r+
代码:
#使用r+打开文件时,不用read() >>> f=open(‘info.log‘,‘r+‘) >>> f.seek(5) #指针指向第二行 >>> print f.tell() >>> f.write(‘1111‘) >>> print f.tell() >>> f.close() 5 9
文件结果:
注意:当使用r+打开文件时,如果使用了read(),那么不管指针在哪里,用write()方法时,新增的内容始终在文件结尾,除非在read()后重新指定了指针。如下:
>>> f=open(‘info.log‘,‘r+‘) >>> f.readline() #读取文件第一行内容 >>> print f.tell() >>> f.write(‘1111‘) >>> print f.tell() >>> f.close() 5 25
文件结果:
五、写读:w+
>>> f=open(‘info.log‘,‘w+‘) >>> print f.read() >>> f.write(‘1111\n‘) >>> f.write(‘2222‘) >>> print f.tell() >>> pring f.read() >>> f.seek(0) >>> print f.read() >>> f.close() #执行结果 #由于是w+模式,因此会先覆盖原文件内容,此时内容为空,print f.read() 结果为空 8 #两次write()后,查看指针位置 #此时指针处于文件末尾,pring f.read()的结果为空 11112222 #重新把指针指向文件开头后,再print f.read(),有结果
六、追加读:a+
>>> f=open(‘info.log‘,‘a+‘) >>> print f.tell() >>> print f.read() >>> f.write(‘1111‘) >>> print f.tell() >>> print f.read() >>> f.seek(0) >>> print f.read() >>> f.close() #执行结果 21 #应为是a+模式打开,指针会指向文件结尾 #指针在文件结果,因此print f.read()内容为空 25 #写入内容后,查看指针位置 #写入内容后,指针还是在结尾,因此print f.read()内容还是为空 aaaa #重新定位指针后,print f.read()出的内容 bbbb ccccc dddd
原文:http://www.cnblogs.com/nizhihong/p/6545686.html
内容总结
以上是互联网集市为您收集整理的python学习笔记-文件基本操作(二)全部内容,希望文章能够帮你解决python学习笔记-文件基本操作(二)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。