通过 2进制模式 读出来的数据就是 bytes 字节类型,到时候写进去的也得是 bytes 字节类型:

2进制模式 - 创建

f = open(‘test.txt’, ‘wb’)

f.write(‘xyq’.encode())

f.close()

二、基本操作(创建、读取、追加)


创建模式

f = open(‘test.txt’, ‘w’)

写入

f.write(‘a\n’)

f.write(‘b\n’)

f.write(‘c\n’)

保存并关闭

f.close()

现在的 f 是创建模式,读取会报错

f.read()

只读模式(默认模式)

f = open(‘test.txt’, ‘r’)

读取全部内容

print(f.read()) # a b c

读取一行内容

print(f.readline()) # a

读取所有行内容(数组)

print(f.readlines()) # [‘a\n’, ‘b\n’, ‘c\n’]

现在的 f 是只读模式,写入会报错

f.write(‘d\n’)

只读模式(默认模式)

f = open(‘test.txt’, ‘r’)

读取一行内容

print(f.readline()) # a

读取剩下的全部内容

print(f.read()) # b c

之所以会输出为这样,可以理解为读取内容的时候有个光标,读了第一行之后,光标到第二行了,在继续读只会从第二行开始。

只读模式(默认模式)文件编码格式指定

f = open(‘test.txt’, ‘r’, encoding=‘gbk’)

读取全部内容

print(f.read()) # 中国

追加模式

f = open(‘test.txt’, ‘a’)

追加

f.write(‘d\n’)

保存并关闭

f.close()

在追加模式下,也只能追加,不能读,不然也会报错。