python中的文件处理模块
4种读法:如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便: # read():将文件中内容全部取出来 # read(size):读取size个字节的内容 # readline() :读取一行数据 ★主要使用这个方法, 有效的避免出现内存峰值 # readlines():读取所有的行,每行内容作为一个元素
一、文件的读
# read() ,文件读取全部内容
with open('123.txt', encoding='utf-8') as f: content = f.read() print(content)
# read(size),每次读取size大小的内容
with open('123.txt', encoding='utf-8') as f: content = f.read(3) print(content, end='')
# readline(),读取一行数据
with open('123.txt', encoding='utf-8') as f: content = f.readline() print(content, end='') # print默认具有换行能力,可以设置end=''取消换行 content = f.readline() print(content, end='') content = f.readline() print(content, end='')
# readlines(), 读取所有的行,每行内容作为一个元素保存在列表中
with open('456.txt') as f: list_temp = f.readlines() for line in list_temp: print(line.strip()) # 把末尾的'\n'删掉 print(list_temp)
二、文件写
w:
w : 1> 只能写; 2> 文件不存在新建; 3> 存在会清空原内容,然后写入新内容; 4> 同一个文件对象多次写入时追加写入,不会覆盖; 5> 此方法写入的同时,还会返回此次写入的字符数;
with open('123.txt', 'w') as f: n1 = f.write('cads') n2 = f.write('Oriya') print(n1, n2)
a
a :
只能写;
文件不存在新建;
存在会追加内容;
r+
r+ 读写模式: 1> 能写,打开不存在的文件会报错 2> 存在会覆盖原内容,新写入多少字符,就会覆盖多少原文本多少字符,指针就停留在新写入内容后,此时读取会把指针后的内容读出来显示 3> 在同一个文件对象多次写入时不会覆盖写,会追加写入; 4> 此方法写入的同时,还会返回此次写入的字符数;
W+
w+ : 1> 写读 2> ⽂件存在则先清空内容 3> ⽂件不存在,创建新⽂件
str1 = "Hello, everyone. I'm a python programmer " str2 = "If哈哈ffams" with open("1.txt", "w+", encoding='utf-8') as file: file.write(str1) file.write(str2) file.seek(0) content = file.read() print(content)
a+
a+ : 1> ⽤于读写 2> ⽂件存在, 追加内容 3> ⽂件不存在,创建新⽂件
f = open('3.txt', 'a+') f.seek(0) # seek只对读有效 res = f.write('sssssss') f.seek(0) res1 = f.read() print(res1, end='')
注意事项:
# 对图片、音频等非文本文件 读写 需要使用 rb wb ab # rb ⼆进制格式的只读操作。后续⽹络课程中具体讲解。 # wb ⼆进制格式的只写操作。后续⽹络课程中具体讲解。 # ab ⼆进制格式的追加操作。后续⽹络课程中具体讲解