python基础之文件操作 read、readline和readlines
python中有三种函数,用来帮我们实现文件的读取,这三种函数分别是read、readline和readlines
1. read
read函数的作用是读取文件全部内容,逐个字节或者字符读取(指针从开头的位置到结尾的位置),读取的得到的是字符串对象,以可读(r, r+, rb, rb+)模式打开文件
如果文件是二进制模式,那么read是逐个字节读取,而如果是非二进制模式,那么是以字符串逐个读取
with open("test2.txt", "w", encoding="utf-8") as f: f.writelines(["关关雎鸠\n", "在河之洲\n", "窈窕淑女\n", "君子好逑\n"]) # read函数 with open("test2.txt", "r", encoding="utf-8") as f: file = f.read() print(type(file)) # <class 'str'> print(file.strip()) # 文件的 读取,我们都习惯要取出文件前面的空格 """ 关关雎鸠 在河之洲 窈窕淑女 君子好逑 """
read函数中还有可选参数size,用于指定一次最多可读取的字符串的个数,如果省略,那么一次性读取全部内容,如果指定的数字大于文件内全部的字符或者字节数,它也不会报错,他会全部读取里面的内容
with open("test2.txt", "r", encoding="utf-8") as f: file = f.read(10) print(type(file)) # <class 'str'> print(file.strip()) # 文件的 读取,我们都习惯要取出文件前面的空格 """ 关关雎鸠 在河之洲 """
with open("test2.txt", "r", encoding="utf-8") as f: file = f.read(100) print(type(file)) # <class 'str'> print(file.strip()) # 文件的 读取,我们都习惯要取出文件前面的空格 """ 关关雎鸠 在河之洲 窈窕淑女 君子好逑 """
2.readline
readline函数用于读取文件的一行,每次读出一行内容,所以读取占用内存小,适合大文件的读取,读取得到的对象是字符串对象
with open("test2.txt", "r", encoding="utf-8") as f: line = f.readline() print(type(line)) # <class 'str'> print(line) # 关关雎鸠
# 如果想要读取里面的全部内容,结合while循环 with open("test2.txt", "r", encoding="utf-8") as f: line = f.readline() while line: print(line) line = f.readline()
"""
关关雎鸠
在河之洲
窈窕淑女
君子好逑
"""
3.readlines
一次性读取全部内容,读取得到的文件内容是列表对象,读取大文件的时候不推荐使用这种方法
# readlines函数 with open("test2.txt", "r", encoding="utf-8") as f: lines = f.readlines() print(type(lines)) # <class 'list'> for i, line in enumerate(lines, 1): print("第{}行:{}".format(i, line))
第1行:关关雎鸠
第2行:在河之洲
第3行:窈窕淑女
第4行:君子好逑