本文出自公众号(Python视觉算法)
python中,处理数据分为两类,第一是处理本地原有的文件,第二钟就是处理网络上的数据。
回想一下,处理文件,怎么样处理文件。当我们有一个文件,我们怎么处理,是不是首先需要打开文件,进入读的状态,既然是处理数据,是不是对文件里面的数据进行修改或写上一些数据,这就是文件写的状态。所以对于文件的处理,主要是通过文件的读与写。
平时在电脑上处理文件,我们都需要动手去做,但是用python语言,只需简简单单的十几行代码轻松搞定,让我们一起来学习把吧。
python文件处理
文件的打开关闭与读写数据
文件的模式
文件的读取位置
1、文件的关闭于读取
对于任何的文件,首先需要的是打开文件才能进行读与写,读完以后与写完以后,则需要关闭文件。用python语言怎么实现呢?
打开文件:open() 函数
file=open(filename,mode='r',buffering=None)
file为文件的路径(c:2.txt)
mode为打开文件的方式,(r,w,a,x,b,t,r+,w+,a+,U)
bufferinng为缓冲buffering大小。0,不会有寄存。1,寄存行。-1,为系统默认的缓冲大小。
读取:f.read()
f.read([size]):读取文件(读取size个字节,默认读取全部)
f.readline():表示读文件的一行
f.readlines():读取完整的问文件,把文件从头到尾都读出来,返回每一行所组成的列表。
写入:f.write()
f.write(str):把字符串写入文件中
f.writelines(lines):将多行文本写入,也就是把一个列表写入
关闭文件:f.close()
注意:打开了文件一定需要关闭文件的哦,要不然写入的数据无法缓存到文件中了
2、文件的模式
模式描述
t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(Python 3 不支持)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
默认为文本模式,如果要以二进制模式打开,加上 b 。
3、文件读取的位置
这个功能实际上就是,如果文件里面的数据太多,如果全部都读取出来,太麻烦,所以当我们只需要从文件中某个位置读取数据。
python中用seek()函数,对从文件中某个位置读取数据。
file_obj.seek(offset,whence=0)
seek为移动指针,从whence偏移sffset个字节。
whence(0,文件头。1,当前位置。2,文件尾)