day9 python之文件操作
1、文件操作
1.1 基本模式
# 格式 f = open("相对路径/绝对路径",mode = "模式",encoding = "编码级") # 模式 # w ------> write (不存在则创建,存在则清空,光标在最后) # r ------> read (不存在则报错,光标在开头,参数为字符) # a ------> append (不存在则创建,存在则追加,强制光标在最后) # 1 打开文件 f = open("practice.txt",mode="w",encoding="utf-8") # 2 写入内容 f.write("我爱中国") # 3 关闭文件 f.close()
1.2 字节流模式
# bytes(b'123') 只能识别 ascll 编码,需要编码、解码 # wb # rb # ab f1 = open("practice.txt",mode="wb") f1.write("我爱中国".encode()) f1.close() f2 = open("practice.txt",mode="rb") res = f2.read() f2.close() print(len(res)) # 计算二进制字节流的长度(12) res1 = res.decode() # 把二进制字节流解码为utf-8 print(res,res1) # b'\xe6\x88\x91\xe7\x88\xb1\xe4\xb8\xad\xe5\x9b\xbd' 我爱中国
1.2.1 脚本复制图片
# 不指定 encoding f = open("picture.png",mode = "rb") res = f.read() f.close() f = open("picture副本.png",mode = "wb") f.write(res) f.close()
1.3 扩展模式
# r+ # r+ 先读后写 f = open("practice.txt",mode="r+",encoding="utf-8") # 先读 res = f.read() print(res) # 后写 f.write("人生苦短") # 在读 f.seek(0) # 调整光标位置在开头 res = f.read() print(res) f.close() # r+ 先写后读 f = open("practice.txt",mode="r+",encoding="utf-8") f.seek(0,2) # 调整光标位置在末尾 f.write("我用python") f.seek(0) res = f.read() print(res) f.close() # w+ # a+ # r+b # w+b # a+b
1.4 with 语法(不需要close)
# 格式一 with open("相对路径/绝对路径",mode = "模式",encoding = "编码级") as f : pass # 格式二 with open("相对路径/绝对路径",mode = "模式",encoding = "编码级") as f1 ,open("相对路径/绝对路径",mode = "模式",encoding = "编码级") as f2 : pass
1.5 flush 刷新缓冲区
# write 只写到内存 """ 1、文件关闭时,自动刷新缓冲区 2、程序运行结束时,自动刷新缓冲区 3,缓冲区内存写满时,自动刷新缓冲区 """ # 4、手动刷新刷冲区,f.flush f = open("practice.txt",mode="w",encoding="utf-8") while True: data = input("请输入内容:") f1.write(data) f1.flush() f1.close()
1.6 文件方法
f.seek(0) # 调整光标位置到开头(字节) f.seek(0,2) # 调整光标位置到最后 f.tell() # 光标位置向左到开头的字节数 f.readable() # 判断文件是否可读 f.writable() # 判断文件是否可写 f.readline() # 读一行 f.readlines() # 读所有行,原型存入列表 f.writelines() # 写入内容是字符串的可迭代的数据 f.truncate() # 截取字节,清空文件,再写入截取内容
版权声明:本文为zhoulangshunxinyangfan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。