文件操作3大步:
打开,读或写,关闭
f=open('C:\\Users\\Lenovo\\Desktop\\a.txt','r',encoding='utf-8')
content=f.read()
print(content)
f.close()打开文件
f=open(name, mode, encoding)函数,打开已存在文件或者创建一个新文件
文件名,打开文件模式,编码
返回值是文件对象,可以使用其属性及方法
文件不关闭会一直占用
常用处理文件方式:r,w,a,b
r:只读模式
w:覆盖写模式
a:追加模式
b:转换为二进制
# 只读模式
# f=open('C:\\Users\\Lenovo\\Desktop\\a.txt','r',encoding='utf-8')
# content=f.readlines() #将所有内容一次性读取,并返回一个列表,每一行即一个元素
# content=f.read(3) 仅读取3个字节的长度
# print(content)
# for line in f:
# line=line.strip() #去除首尾的换行和回车
# print(line)
# f.readline() #一次读取一行
# f.close()
# for循环循环读取
# for line in f:
# line=line.strip()
# print(line)
#
# f.close()
# with open()函数语法,执行完会自动关闭文件
# with open('C:\\Users\\Lenovo\\Desktop\\a.txt','r',encoding='utf-8') as f:# 该语法可以自动关闭文件
# for line in f:
# print(line.strip())
#小型案例
# f=open('C:\\Users\\Lenovo\\Desktop\\a.txt','r',encoding='utf-8')
# ans=0
# for line in f:
# line=line.strip()
# for c in line:
# if c=='L' or c=='数据库':
# ans+=1
# print(ans)
# f.close()
# 文件覆盖写操作
# 打开文件
# 写入数据
# 内容刷新
# f.flush()将缓冲区中数据存入硬盘
# 不要经常flush,会导致速度变慢,但是及时存入内存是一个不错的建议
# 常用flush 搭弓射箭,以此循环
# 传完数据再用flush 一次将所有箭矢搭载在弓上,同时发出
# f=open('C:\\Users\\Lenovo\\Desktop\\b.txt','w',encoding='utf-8')
# # 文件不存在则新建,如果存在则清空再次写入
# f.write('Hello World') # 内容写入缓冲区
# f.flush() # 缓冲区内容写入硬盘
# f.close()
#多次write都只会写入缓冲区,一次flush操作就可以将所有缓冲区的数据写入文件
#缓冲区满,调用flush,调用close时数据才会从缓冲区真正写入硬盘
#文件追加
# f=open('C:\\Users\\Lenovo\\Desktop\\b.txt','a',encoding='utf-8')# 文件不存在则新建,存在则追加
# f.write('Hello World\n')
# f.write('How are you?\n')
# f.flush()
# f.close()
#
# f=open('C:\\Users\\Lenovo\\Desktop\\b.txt','r',encoding='utf-8')
# for line in f:
# print(line.strip())
# f.close()
f=open('C:\\Users\\Lenovo\\Desktop\\b.txt','rb',encoding='utf-8')
#rb 二进制读,rw 二进制写
#只有文本文件可以使用r,w,a
#非文本文件必须带有b,以二进制形式进行处理
#二进制处理