共计 2072 个字符,预计需要花费 6 分钟才能阅读完成。
Python 根底 - 文件操作
文件解决流程
1. 关上文件,失去文件句柄并赋值给一个变量
2. 通过句柄对文件进行操作
3. 敞开文件
r 模式,默认模式,文件不存在则报错
w 模式,文件不存在则创立,文件存在则笼罩
a 模式,文件不存在则创立,文件存在则不会笼罩,写内容会以追加的形式写(写日志文件的时候罕用),追加模式是一种非凡的写模式
b(rb,wb,ab) 模式:不必加 encoding:utf-8
基本操作
关上文件
open(path, flag[, encoding][, errors])
path: 要关上文件的门路
flag: 关上文件的形式
r 以只读的形式关上文件,文件的描述符放在文件的结尾
rb 以二进制格局关上一个文件用于只读,文件的描述符放在文件的结尾
r+ 关上一个文件用于读写,文件的描述符放在文件的结尾
w 关上一个文件只用于写入,如果该文件曾经存在会笼罩,如果不存在则创立一个新文件
wb 关上一个文件只用于写入二进制,如果该文件曾经存在会笼罩,如果不存在则创立一个新文件
w+ 关上一个文件用于读写,如果该文件曾经存在会笼罩,如果不存在则创立一个新文件
a 关上一个文件用于追加,如果文件存在,文件描述符将会放在文件开端
a+
encoding: 编码格局
errors: 错误处理
path = r"C:\Users\Desktop\file1.txt"
#ignore 疏忽谬误
f = open(path, "r",encoding="gbk")
关上文件的模式有:
r,只读模式【默认模式,文件必须存在,不存在则抛出异样】
w,只写模式【不可读;不存在则创立;存在则清空内容】
x,只写模式【不可读;不存在则创立,存在则报错】
a,追加模式【可读;不存在则创立;存在则只追加内容】
“+” 示意能够同时读写某个文件
r+,读写【可读,可写】
w+,写读【可读,可写】
x+,写读【可读,可写】
a+,写读【可读,可写】
“b” 示意以字节的形式操作
rb 或 r+b
wb 或 w+b
xb 或 w+b
ab 或 a+b
注:以 b 形式关上时,读取到的内容是字节类型,写入时也须要提供字节类型,不能指定编码
读文件内容
# 1、读取文件全部内容
str1 = f.read()
print(str1)
# 2、读取指定字符数
str2 = f.read(10)
print("*"+str2+"*")
str3 = f.read(10)
print("*"+str3+"*")
# 3、读取整行,包含 "\n" 字符
str4 = f.readline()
print(str4)
str5 = f.readline()
print(str5)
# 4、读取指定字符数
str6 = f.readline(10)
print(str6)
# 5、读取所有行并返回列表
list7 = f.readlines()
print(list7)
# 6、若给定的数字大于 0,返回理论 size 字节的行数
list8 = f.readlines(20)
print(list8)
# 7、批改描述符的地位
f.seek(10)
str9 = f.read()
print(str9)
敞开文件
f.close()
# 一个残缺的过程
try:
f1 = open(path,"r", encoding="gbk")
print(f1.read())
finally:
if f1:
f1.close()
with open(path,"r",encoding="gbk") as f2:
print(f2.read())
写文件
path = r"C:\Users\Desktop\file4.txt"
f = open(path,"w")
# 1、将信息写入缓冲区
f.write("lee is a good man")
# 2、刷新缓冲区
# 间接把外部缓冲区的数据立即写入文件,而不是被动的期待主动刷新缓冲区写入
f.flush()
f.write("lee is a good man\n")
f.close()
with open(path,"a") as f:
f.write("good man")
with open('a.txt','w') as f:
pass
with open('a.txt','r') as read_f,open('b.txt','w') as write_f:
data=read_f.read()
write_f.write(data)
path = r"C:\Users\yanji\Desktop\day7\test1"
with open(path,"wb") as f3:
str = "lee is a good man"
f3.write(str.encode("utf-8"))
with open(path,"rb") as f2:
data = f2.read()
print(data)
print(type(data))
newDate = data.decode("utf-8")
print(newDate)
print(type(newDate))
人生是条无名的河,是浅是深都要过;人生是杯无色的茶,是苦是甜都要喝;人生是首无畏的歌,是高是低都要唱。
以上就是本次分享的全部内容,当初想要学习编程的小伙伴欢送关注 Python 技术大本营,获取更多技能与教程。
正文完