只读 r
f = open('test',mode='r',encoding='utf-8')
f1 = f.read()
print(f1)
f.close()
只读类型下,文件不能被修改
读写 r+
f = open('test',mode='rb',encoding='utf-8')
file = f.read()
f1 = f.read()
f.close()
当读取方式为r+时,文件可以被写入,但是打印出来的是写入前所读取的
二进制读 rb
代码略去,文件以二进制的模式读取。
剩下的我将以表格形式统一展现,可以参照对比以上代码
读取方式 | 补充 |
r | 只读,不可被修改 |
r+ | 读写,光标在前,从第一个位置开始修改,打印出修改的字符数 |
rb | 以byte方式读取 |
w | 只写,若写入的目标文件没有,则创建,有则清空再写入 |
wb | 转换为byte类型写入 |
a | 打开文件,把光标移动到有文字的后面,再进行追加 |
ab | 以byet类型加入 |
注:r+有两个表现,一个是读写,还有一个是写读。需要注意。另外,w+和a+我没有写,是因为学习阶段用的相对来说较少
我先以表格形式展示,再进行详解
读取方式 | 用于场合 |
read() | 以字符读,可添加参数(I),读前i个字符 |
seek() | 调整光标位置 |
tell() | 调整光标位置,需放置于seek()前 |
readline() | 一行一行的读 |
readlines() | 将每一行当成列表中元素读取,换行自带 \n |
truncate() | 截取一段读出来,从后往前读 |
例如有一个名为test的文件,文件内容如下:
456926667
这是一个长为10个字符的字符串
f = open('test',mode='r',encoding='utf-8')
f1 = f.read(5)
print(f1)
f.close()
打印结果为
45692
f = open('test',mode='w',encoding='utf-8')
f1 = f.seek()
print(f1)
f.close()
打印结果为
2
剩下的我就不一一做演示,有需要可以自己试一试
f = open('test',mode='w',encoding='utf-8')
此文件读取方式,仅能读取一个文件,另外代码多
with open('test',mode='w',encoding='utf-8') as f:
pass
此文件读取方式,能同时读取多个文件,且代码量相对来说少
当需要同时操作两个或两个文件以上时,with open 方法相对来说简易许多