""" coding:utf-8 @Software:PyCharm @Time:2023/4/6 16:59 @author:Panda """ # 文件基础3步骤:打开文件,写入或读文件,关闭文件,文件打开必定要关闭(close()) """ data = '好的' data_str = 'abc' res = data_str.encode('utf-8') print(res) # Output: b'abc' dat = b'\xe5\xa5\xbd'.decode() print(dat) # Output: 好 fp = open('./ce.png', mode='rb') res = fp.read() fp.close() print(len(res)) # Output: 3475 with open('xx.png', mode='wb') as f: f.write(res) """ # 文件操作3个扩展模式 """ read() :读取字符个数,从左往右读,默认在末尾处 seek() :调整文件指针的位置 seek(0) : 指针(光标)移动到0字节的位置(也就是开头的位置) seek(0, 2) : 指针(光标)移动到末尾的位置 tell() : 返回光标左边的字节数 """ # 1. r+先读后写 """ fp = open('test1.txt', 'r+') # 原内容是 good afternoon res = fp.read() fp.write('hello') print(fp.read()) # Output:空字符串 因为read()默认光标在结尾 fp.seek(0) print(fp.read()) fp.close() # Output:good afternoon hello 因为seek()将光标设置为了开头 """ # 2. r+ 先写后读 """ fp = open('test1.txt', 'r+') # 原内容是 good afternoon hello # 在r模式下 需要把光标移动到最后,不然原字符会被覆盖 fp.seek(0, 2) fp.write(' permanent') fp.seek(0) print(fp.read()) # Output:good afternoon hello permanent fp.close() """ # 3.w+ 可读可写 清空重写(有文件清空写,没有文件创建文件写) """ fp = open('test1.txt', 'w+') # 原内容是 good afternoon hello fp.write('i love xye') fp.seek(0) print(fp.read()) fp.close() """ # 4.a+ 可读可写 追加写(有文件追加写,没有文件创建文件写)encoding字节编码默认为utf-8 '''""" a+的模式中 会强行把光标放在文件的末尾进行追加写入 r+基于光标在当前指定位置写入会覆盖 """ fp = open('test1.txt', 'a+', encoding='utf-8') # 原内容是 i love xye fp.write(' permanent') fp.seek(0) print(fp.read()) fp.close()''' # 5.在文件操作光标的时候,一般情况下的,seek通常用法只用2个。 # seek(0) seek(0, 2) 因为如果编码是中文字符的情况会导致编码字节无法解析报错 # 6.在文件操作中, 直接用open 一定的操作需要close()关闭文件释放资源内存,可以手动刷新fp.flash()缓冲区 # 用with 打开则不需要手动关闭 with open('test1.txt', 'a+') as f: f.write('permanent my mine my heart') f.seek(0) print(f.read())
标签:fp,文件,Python,read,print,基本操作,seek,光标 From: https://www.cnblogs.com/future-panda/p/17296776.html