Python系列 - 文件读取
前言
文件读取是最常见的IO操作,python中内置了读写文件的函数
文件读取
可使用python内置的open()函数,传入文件名以及标示符
伪代码如下
用open打开文件
打开文件成功,调用read()方法可以一次性读取文件的全部内容
调用close方法,关闭文件
代码实现:
filepath = './test.txt'
f = open(filepath,'r',encoding='utf-8')
print(f.read())
f.close()
打印结果如下:
这就是一个测试文件
嘻嘻嘻
哈哈哈
test
emmm
查看open()的源码可知完整的语法格式
open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
参数说明:
- file:必须,表示文件路径
- mode:可选,表示文件打开模式
- buffering:设置缓冲
- encoding:一般使用utf-8
- errors:报错级别
- newline:区分换行符
- closefd:传入的file参数类型
常用读写模式
r : 读取文件,若文件不存在则会报错
w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件
a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾
rb,wb: 分别于r,w类似,但是用于读写二进制文件
r+ : 可读、可写,文件不存在也会报错,写操作时会覆盖
w+ : 可读,可写,文件不存在先创建,会覆盖
a+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾
b:二进制模式
可以组合使用,如:
- rb:二进制读
- wb:二进制写
...
🎑ATTENTION:
- 文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源
open()打开文件时,如果文件不存在,会抛出一个IORrror错误- 由于读写文件都有可能产生
IORrror,一旦出错,后面的内容就不会被调用,所以一般组合try...finally使用 - 若要打开图片、视频等文件,使用二进制模式
b
with语句
前面提到,每次组合try...finally使用,比较繁琐,可以使用with语句来调用close()方法:
filepath = './test.txt'
with open(filepath,'r',encoding='utf-8') as f:
print(f.read())
🎑ATTENTION:
- 使用with可以隐式处理异常
读取文件的三种方法
read()、readline()、readlines()
read()
前面有介绍,不赘述
🎑ATTENTION:
- 优点:方便,简单;一次性读出文件放在一个大字符串中,速度最快
- 缺点:文件过大的时候,占用内存会过大
readline()
读取第一行内容
with open(filepath,'r',encoding='utf-8') as f:
line = f.readline()
print(line)
运行结果如下:
这就是一个测试文件
readlines()
读取文本所有内容,并且以列表的格式返回结果,一般配合for in使用
with open(filepath,'r',encoding='utf-8') as f:
for line in f.readlines():
# readlines()读取的文本内容,每行文本都带有一个'\n'换行符,可以去除列表中每一个元素的换行符
line = line.strip('\n')
print(line)
运行结果如下:
这就是一个测试文件
嘻嘻嘻
哈哈哈
test
emmm
🎑ATTENTION:
- 一次性读取,速度比较快
- 随着文本增大,占用内存会越来越多

浙公网安备 33010602011771号