读取文件内容
在 python 中打开文件后,除了可以向其写入或追加内容,还可以读取文件中的内容。在 python 中打开文件后,除了可以向其写入或追加内容,还可以读取文件中的内容。读取文件内容主要分为以下几种情况:
1、读取指定字符
文件对象提供了 read() 方法读取指定个数的字符,语法格式如下:
file.read([size])
参数说明:
file :为打开的文件对象
size:可选参数,用于指定要读取的字符个数,如果省略,则一次性读取所有内容。
在调用 read() 方法读取文件内容的前提是在打开文件时,指定的打开模式为r(只读)或者r+(读写),否则,将抛出异常。
例如,要读取 message.txt 文件中的前9个字符,可以使用下面的代码:
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模式(即rb),那么只允许从文件头开始计算相对位置,从文件尾计算时就会抛出异常。
例如,想要从文件的第19个字符开始读取13个字符可以使用下面的代码:
with open('message.txt','r') as file: file.seek(19) #移动文件指针到新的位置 string = file.read(13) #读取13个字符 print(string)
在使用seek()方法时,如果来用 GBK 编码,那么 offset 的值是按一个汉宇(包括中文标点符号)占两个字符计算,而采用 UTF-8 编码,则一个汉字占3个字符,不过无论采用何种编码英文和数字都是按一个字符计算的。这与read(size)方法不同。
2、读取一行
在使用read()方法读取文件时,如果文件很大,一次读取全部内容到内存,容易造成内存不足所以通常会采用逐行读取。文件对象提供了 readline() 方法用于每次读取一行数据。readline() 方法的基本语法格式如下:
本文未完全显示,开通会员查看全文......