Python合集之文件操作(三)
1.读取指定字符
文件对象提供了 read()方法,读取指定个数的字符。
file.read([size])
参数说明:
file:为打开的文件对象
size:可选参数,用于指定要读取的字符个数,如果要省略,则一次性读取所有内容。
注:在调用read()方法读取文件内容的前提是在打开文件时,指定的打开模式为r 或者 r+。
例如:
with open('message.txt','r') as file : string=file.read(9) print(string)
使用read(size)方法读取文件时,是从文件的开头读取的,如果想要读取部分内容,可以先使用文件对象的seek()方法将文件的指针移动到新的位置,然后再应用read(size)方法读取。seek()方法的基本语法格式如下:
file.seek(offset[,whence])
参数说明:
file:表示已经打开的文件对象
offset:用于指定移动的字符个数,其具体位置与whence参数有关
whence:用于指定从什么位置开始计算。值为0表示从文件开头开始计算,值为1表示从当前位置开始计算。值为2表示从文件尾开始计算,默认为0.
注:对于whence参数,如果想要打开文件时,没有使用b模式,那么只允许从文件头开始计算相应位置,从文件尾计算时会抛出异常信息。
例如:
with open('message.txt','r') as file: file.seek(19) string=file.read(13) print(string)
注:在使用seek()方法时,如果采用GBK编码,那么offest的值是按一个汉字占两个字符计算,而采用UTF-8编码则是一个汉字占3个字符,不过无论采用何种编码英文和数字都是按一个字符计算的。
2.读取一行
在使用read()方法读取文件时,如果文件很大,一次读取全部内容到内存,容易造成内存不足,所以通常采用逐行读取,文件对象提供了 readline()方法用于每次读取一行数据readline()方法的基本语法格式如下;
file.readline()
例如:
print("\n","="*35,"蚂蚁庄园动态","="*35,"\n") with open('message.txt','r') as file: number=0 while True: number+=1 line=file.readline() if line=='': break print(number,line,end="\n") print("\n","="*39,"over","="*39,"\n")
3.读取全部行
读取全部行的作用同调用read()方法不指定size类似,只不过读取全部行时,返回的是一个字符串列表,每个元素为文件的一行内容。读取全部行,使用的是文件对象的readlines()方法。
file.readlines()
例如:
print("\n","="*25,"蚂蚁庄园动态","="*25,"\n") with open('message.txt','r') as file: message=file.readlines() print(message) print("\n","="*29,"Over","="*29,"\n")
花絮:
本期的Python文件的处理就分享到这里,下期我们将继续分享Python文件目录的相关知识,感兴趣的朋友可以关注我。
同时也可以关注下我的个人 微信订阅号,园子里面的文章也会第一时间在订阅号里面进行推送跟更新。