前言
读取文件的三个方法: read(),readline(),readlines(). 均可接受一个方法参数用以限制每次读取的数据量, 但通常不使用
read()
优点: 读取整个文件, 将文件内容放到一个字符串变量中.
劣势: 如果文件非常大, 尤其是大于内存时, 无法使用 read() 方法.
总结: 不适用于读取大文件
简单代码
- f = open('test/gbk.txt', 'r+', encoding='utf-8')
- print(f.read())
测试结果
- 123 456 789 @#$%
- readline()
优点: readline() 方法每次读取一行; 返回的是一个字符串对象, 保持当前行的内存, 不占用内存
缺点: 比 readlines 慢得多
简单代码
- # 读取一行
- f = open('test/gbk.txt', 'r+', encoding='utf-8')
- print("读取一行 ====")
- line = f.readline()
- while line:
- # 打印当前文件指针的位置
- print("文件指针:", f.tell())
- print("行内容:", line)
- line = f.readline()
测试结果
读取一行 ====
文件指针: 7
行内容: tests
文件指针: 12
行内容: 123
文件指针: 17
行内容: 456
文件指针: 22
行内容: 789
文件指针: 28
行内容: 菠萝
包含知识点
当你每次调用 readline() 方法时, 你的文件指针就会指向当前行尾部, 一个换行符 \n 占两位, 一个中文也是
读取到最后一行之后再调用 readline() 就会返回空, 结束循环
readlines()
特点: 一次性读取整个文件; 自动将文件内容分析成一个行的列表
简单代码
- # 读取多行
- f = open('test/gbk.txt', 'r+', encoding='utf-8', errors='ignore')
- print("读取多行 ====")
- print(f.readlines())
测试结果
['tests\n', '123\n', '456\n', '789\n', '菠萝']
包含知识点
readlines() 读取所有行然后把它们作为一个字符串列表返回
返回的每一行内容包含换行符
来源: https://www.cnblogs.com/poloyy/p/12350736.html