|
一:学习内容
二:读文件--步骤分解
1.过程
第一步:打开文件 第二步:读文件内容 第三步:关闭文件
2.第一步:打开文件
open(path,flag[,encoding][,errors])
参数说明: path:要打开文件的路径 flag:打开方式( r:以只读的方式打开文件,文件的描述符放在文件开头 rb:以二进制格式只读的方式打开文件,文件的描述符放在文件开头 r+:打开一个文件用于读写,文件描述符放在文件的开头 w:打开一个文件只用于写入,文件的描述符放在文件的开头,如果该文件已经存在会覆盖,如果不存在则创建新文件 wb:打开一个文件只用于写入二进制,如果该文件会覆盖,如果该文件不存在新创建文件 w+:打开一个文件用于读写,如果该文件存在会覆盖,如果该文件不存在新创建文件 a:打开一个文件用于追加,如果文件存在文件描述符将会被放到文件末尾 a+:打开一个文件用于追加 encoding:编码方式 errors:错误处理
path = r"F:\python_test\read_practice.txt" #f = open(path,"r",encoding="utf-8",errors="ignore") #ignore 忽略错误 f = open(path,"r",encoding="utf-8")
3.第二步:读文件内容
#法1、读取文件全部内容,适合读文件比较小的 str1 = f.read() print(str1)
#法2、读取指定字符数 str2 = f.read(10) #读取文件10个字符,1个中文是1个字符 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、读取所有行包括"\n"字符并返回列表 list7 = f.readlines() print(list7)
#法6、若给定的数字大于0,返回实际size字符的行数 list7 = f.readlines(25) print(list7)
#修改文件描述符位置 f.seek(0) str9 = f.read() print(str9)
4.第三步:关闭文件
f.close()
三:读文件--完整过程
1.法一 try: f1 = open(path,"r",encoding="utf-8") print(f1.read()) finally: if f1: #打开失败时f1对象还未创建就不用关闭了 f1.close()
2.法二,最简洁的写法,不用自己手动去close了
with open(path,"r",encoding="utf-8") as f2: print(f2.read())
四:写文件--步骤分解
1.过程
第一步:打开文件 第二步:写文件内容 第三步:关闭文件
2.刷新缓冲区两种方式
自动刷新 f.close() 手动刷新 f.flush()
3.第一步:打开文件
path = r"F:\python_test\write_practice.txt" f = open(path,"w",encoding="utf-8")
4.第二步:写文件
#将信息写入缓冲区 f.write("tester is a good girl")
#刷新缓冲区,就能写入文件 #直接把缓冲区的数据立刻写入文件,如果没有写刷新缓冲区则会在关闭文件时在把缓冲区写入文件 f.flush()
5.第三步:关闭文件
f.close()
五:写文件--完整过程
1.法一 try: f1 = open(path,"w",encoding="utf-8") f1.write("good girl") finally: if f1: #打开失败时f1对象还未创建就不用关闭了 f1.close()
2.法二-覆盖写入,简洁的写法,不用自己手动去close了
with open(path,"w",encoding="utf-8") as f2: f2.write("good girl")
3.法三-追加写入,简洁的写法,不用自己手动去close了
with open(path,"a",encoding="utf-8") as f3: f3.write("young girl")
执行完法二和法三的结果:文件被写入内容
六:编码与解码
1.说明
不是二进制时: 文件打开的编码要一致,即写文件和读文件open中的encoding要一致
二进制文件时: 文件写入读取的编码要一致
2.不是二进制文件读写操作
path = r"F:\python_test\encode_file.txt"
with open(path,"w",encoding="utf-8") as f1: str = "tester is a good girl测试" f1.write(str)
with open(path,"r",encoding="utf-8") as f2: data = f2.read() print(data) print(type(data))
3.二进制文件读写
path = r"F:\python_test\encode_file.txt"
#with open(path,"wb",encoding="utf-8") ,当方式里有b时,不能有encoding参数,否则会报错binary mode doesn't take an encoding argument with open(path,"wb") as f1: str = "tester is a good girl测试" f1.write(str.encode("utf-8"))
with open(path,"rb") as f2: data = f2.read() print(data) print(type(data)) newData = data.decode("utf-8") print(newData) print(type(newData))
来源:https://www.cnblogs.com/miaomiaokaixin/p/11505949.html |