IO在计算机编程中指的是输入和输出。IO编程中,Stream(流)是一个很重要的概念。IO有同步IO和异步IO两种,同步和异步的区别就在于是否等待IO执行的结果。读写文件是常见的IO操作。
1. 文件
1.1 打开文件
open():打开文件,返回一个stream(流对象)
使用方法:open(file, mode=‘r’, buffering=None, encoding=None, errors=None…)
- file:文本文件、二进制字符串、文件路径(使用相对路径或绝对路径表示)
- mode:打开文件的模式
- r:读模式打开(默认)
- w:写入模式打开,先清空文件,不存在则创建文件
- x:创建新文件,以写入模式打开
- a:以追加写入模式打开,不存在则创建文件
- b:二进制模式打开
- t:文本模式(默认)
- +:读写模式打开
- encoding:打开文件使用的编码(与写入文件使用的编码相同才能正常读取)
1.2 关闭文件
- close():close()方法用来关闭文件
- 建议完成操作后总是关闭文件,打开的文件会占用系统资源
file = open("test.txt")
# 操作
file.close() # 关闭文件
- try----finally方式:
try:
file = open("test.txt")
# 操作
finally:
file.close()
- with-----open-----as-------方式:推荐使用,会自动调用close()方法关闭文件
with open("test.txt") as f:
# 操作
1.3 读取文件
- read():一次读取所有内容并返回,适用于文件较小时使用
- read(size):读取一定数量数据并返回。文本模式下(rt),表示读取指定字符数;二进制模式下(rb),表示读取指定字节数。UTF8编码下,英文字符一个字节,汉字三个字节
- readline():读取一行并返回,包括换行符
- readlines():读取所有行并以列表形式返回(包括换行符)
# 读取文件
# read():读取所有并返回,一般用于文件较小时读取
with open("python.txt", "r") as file:
content = file.read()
print(content)
# read(size):文本模式下读取指定字符数返回;二进制模式下表示读取指定字节返回(utf8编码,英文1个字节,汉字3个字节)
with open("python.txt", "r") as file:
content = file.read(20)
print(content)
with open("python.txt", "rb"