文件处理
‘‘‘
1、什么是文件
文件是操作系统提供给用户或者说应用程序操作硬盘的一种功能
2、为何要用文件
读写文件就是在读写硬盘;我们对文件的读写操作都会被操作系统转换成硬盘的读写操作
‘‘‘
3、如何用文件
# 两种方法
方法一:推荐用此方法
f = open(r‘C:\a.txt‘,‘rt‘,encoding=‘utf8‘)
print(f.read(n)) # 带t的模式下,n表示字符个数
# 文件路径前加r,取消路径关联性成为绝对路径。
# 读写模式,默认为rt。
方法二:当前指令执行完后自动关闭该文件
with open(r‘C:\a.txt‘,‘rt‘,encoding=‘utf8‘) as f:
print(f.read())
# .read() 用于从文件读取指定的字节数,如果未给定或为负则读取所有。
# .close() 方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发报错。
文件的打开模式
1、控制文件读写的模式
# r(默认):只读模式,文件指针处于文件开头,如果文件不存在则报错
# w:只写模式,如果文件不存在则创建空文档,文件存在则清空,文件指针处于文件开头。在文件不关的情况下,连续的write写入,新的内容会跟在后面
# a:追加写 模式,如果文件不存在则创建空文档,文件存在不会清空,文件指针处于末尾。a模式,在打开了文件不关的情况下,连续的write写入,新写的内容永远跟在后面,这一点与w模式相同。
2、控制文件读写文件类型
# t(默认):读写都以字符串为单位,只用于文本文件,必须指定encoding参数
# b:读写都是以bytes为单位,适用于所有文件,一定不能指定encoding参数
可读可写
# r+t
# w+t
# a+t
# r+b
# w+b
# a+b
# print(f.readable()) 判断能不能读 返回Ture或者False
# print(f.writable()) 判断能不能写 able判断能不能干嘛 返回Ture或者False
文件操作的其他方法
f = open(r‘C:\a.txt‘,‘rt‘,encoding=‘utf8‘)
print(f.readline) # 读取一行
print(f.readlines) # 读取所有,以列表的形式返回
f = open(r‘C:\Users\Administrator\Desktop\b.txt‘, ‘wt‘)
t=[‘123\n‘,‘498\n‘,‘9999\n‘] # \n换行
for i in t: # 把t列表的值循环给i
f.writelines(i) # 把循环给i的值全部写入f文本
print(f.readline()) # 打印 f文本的一行内容
print(f.readlines()) # 打印 f文本的所有行内容,以列表的形式返回
f.flush() # 刷新文本内容
控制文件指针移动
# 大前提:只有t(包括rt,t)模式下也就是文本文件中,f.(read(n))中的n代表字符个数,除此以外,都指指针的移动字节。
f.truncate() # 填截取数量的字节数,剩下的不保留
.seek(6,0) # 填字符串数量的字节数,指针以字节为单位移动,
f.write(‘好的‘) # 替换原文本相应位子相应个数的字符
f.seek(字节个数,0) 0 按照文件开头开始移动
f.seek(字节个数,1) 1 按照文件当前位子开始移动
f.seek(字节个数,2) 2 按照文件末尾位子开始移动,通常是倒着移
t模式下只能用0
print(f.read().decode(‘gbk‘))
b模式下都能用,b模式下打印提取要输入解码格式.decode(‘utf8‘)
f.write(‘抖音‘.encode(‘gbk‘))
b模式下写入要加编码格式.encode(‘gbk‘)
原文:https://www.cnblogs.com/yu-kun/p/14864505.html