-
两种打开方式
-
方式一
f = open(file='data/test01.txt',mode='r',encoding='UTF-8') # file:文件路径 # mode:文件操作模式,读、写、追加。。。 # encoding:文件的编码方式 print(f.read()) # test # 测试 f.close() # 文件操作完成之后需要手动close()
-
方式二
with open(file='data/test01.txt',mode='r',encoding='UTF-8') as f: print(f.read()) # test # 测试 # with的范围结束之后打开的文件就自主关闭了,无需手动关闭
-
-
文件的处理方式
通过open()方法中传的
mode
属性来指定mode 处理方式 r 只读 rb 只读,打开为bytes(二进制)类型 w 只写,如果文件不存在会创建一个;如果文件存在会覆盖写文件 wb 只写,以bytes格式写入文件 a 向文件中追加 r+ 或 r+b 读写 w+ 或 w+b 写读 a+ 追加 b 代表二进制(bytes)
+ 代表读写 -
读文件
with open(file='data/test01.txt',mode='r',encoding='UTF-8') as f:
print(f.read())
# test
# 测试
with open(file='data/test01.txt',mode='rb') as f:
print(f.read())
# b'test\r\n\xe6\xb5\x8b\xe8\xaf\x95'
-
写文件
with open(file='data/test02.txt',mode='w',encoding='UTF-8') as f: f.write('test02\n测试02') with open(file='data/test03.txt',mode='wb') as f: f.write('test02\n测试02'.encode('utf8')) # 既然是wb(以二进制)写入,就要给文本内容编码成二进制,直接传入文本会报错 # 直接查看时候不会以二进制码显示
-
追加
with open(file='data/test04.txt',mode='a',encoding='UTF-8') as f: # test04.txt # test04 # 测试04 f.write('测试04追加') # 如果mode='ab',write的时候就要对内容encode()
-
文件对象
f
的常用方法方法 作用 f.read() 读取文件的全部内容 f.seek(int) 将光标定位的int值处 f.tell() 定位到上次操作光标的位置 f.readline() 读一行 f.readlines() 读取每行生成一个列表 f.wirte(content) 向文件中写入内容 f.readable() 返回文件是否可读 f.truncate(n) 将源文件截取光标到n,写入文件(先读后写)