在日常的python使用中,我们经常需要对文件进行读写与存储操作;作为普及篇,今天我们就来说说,如何在python中实现文件打开及读写。(由于篇幅原因,本文默认使用python3,暂不考虑兼容性的问题,有兴趣的朋友可以自行了解一下codecs和io包)
本文主要包括以下内容:
一、介绍两种文件打开方式;
二、介绍不同的读写操作。
三、介绍常用的文件操作方法。
一、文件打开方式
1、open()+close()
虽然open()用法我自己不使用,但是还是要介绍一下。
用法:
f = open( 'file_name', 'r',encoding = 'utf-8' )
其中,'file_name' 指的是所要打开的文件的文件名, 'r'指的是对文件的操作方式(具体不同的读写操作类型将在下文中逐个介绍),encoding = 'utf-8'是指定编码类型。
下面我们进行实例操作:
我们尝试打开上面这个txt文件,并查看里面的内容:
#先打开文件:
f = open('C:UsersAdministratorDesktop测试文件.txt','r',encoding = 'utf-8')
#再使用read()方法,查看文件里的内容:
print(f.read())
$关闭文件
f.close()
运行结果:
注意了,使用open()方法需要注意一下几点:
1、当未指定文件编码格式时,如果文件编码格式与当前默认的编码格式不一致,那么文件内容的读写将出现错误,在python3下,可以通过encoding参数指定编码方式。
2、结尾一定要使用close()来关闭文件。原因主要是:
- 节约资源和内存耗损;
- 可以释放所占用的系统资源并尽早将文件置于更安全的状态,只有关闭文件后,文件内容才能同步到磁盘。
3、当读写文件本身有错误时,即使使用close()也可能会出现文件无法正常关闭的现象。
针对上述可能出现的一些异常情况,所以我自己不太喜欢用这个方法,下面我们介绍一下with open( )。
2、with open()-----(推荐使用)
with 的作用相当于调用close()方法,因此当我们使用with open( )在对文件操作完成后,无需通过close()关闭文件,文件会自动关闭,这种方法的安全系数更高,同时也避免了有些时候忘记关闭文件的毛病。
用法:
with open('file_name','r',encoding = 'utf-8') as f:
其中,'file_name' 指的是所要打开的文件的文件名, 'r'指的是对文件的操作方式(具体不同的读写操作类型将在下文中逐个介绍),encoding = 'utf-8'是指定编码类型。
下面我们同样进行实例操作:
我们尝试用with open( )打开上述txt文件,并查看内容:
#使用with open 打开文件
with open('C:UsersAdministratorDesktop测试文件02.txt','r',encoding = 'utf-8') as f:
#查看文件内容
print(f.read())
运行结果:
可以看到,结果是一样的。
二、读写操作类型介绍
读写文件是一种常见的操作,它指的是:请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。
读写操作可以分为三大类:
读 r(read),写 w(write),追加 a(append),具体类型可见下表。
下面我们选取其中最常用的几种类型进行介绍及实例使用。
下面我们上述读写操作进行几点补充说明:
(1)针对读r(read)类型,都要求操作文件必须已存在;
(2)'r+' 表示可读可写(可读取,可写入),写入时,将追加在文件内容结尾。
(3)‘a’表示追加写。只能执行写(追加在后面),不能读。
(4)‘a+’表示追加读写。打开文件方式与写入方式和'a'一样,但是可以读。需要注意的是,如果是若刚用‘a+’打开一个文件,一般不能直接读取。
三、常用文件操作方式
- print(f.readline())#打印第一行
- print(f.readline(6))#打印前6个字符
- print(f.readlines())#一次读取所有内容并按行返回list
- print(f.tell())#打印当前指针位置
- print(f.read())#一次性读取文件的全部内容,读完后,指针停留在结尾处。(文件较小时可以使用,当文件较大时,建议使用read(size)方法,该方法每次最多读取size个字节的内容)
- print(f.seek( 0))# seek(0)表示将指针返回到文件头;文件如果要重头到尾再读,文件指针须先回到文件头(0-文件头,默认值;1-当前位置;2-文件尾)
- print(f.read())#重读文件
- print(f.encoding)#打印当前使用的字符编码
- print(f.name)#打印文件名
- print(f.flush())#刷新
- f.truncate()#清空文件
- f.truncate(12)#从头开始,第12个字符后截断并清除
- f.close()#关闭文件
下面我们进行操作:
首先我们还是先来看一下我们的原文件:
(1)使用read查看文件所有内容 :
(2)使用read查看文件第一行内容 :
(3)使用read查看文件前6个字符 :
由于时间关系,剩下的内容我会在下次更新中一并补充~
以上便是<如何使用python打开及读写文件(基础篇)>的内容,感谢大家的细心阅读,同时欢迎感兴趣的小伙伴一起讨论、学习,想要了解更多内容的可以看我的其他文章,同时可以持续关注我的动态~