5.6 文件高级应用

5.6 文件高级应用

5.6.1 可读可写

#可读可写:a+,r+,w+(不推荐,容易报错;建议分开读分开写,使用r,w)

#r只可读
with open (r'C:\Users\30213\Desktop\补习\编程\2. markdown笔记\5. 文件处理\5.2 test.txt',mode='r',encoding='gbk') as f:
    print(f.readable()) #可读
    print(f.writable()) #不可写

#r+可读可写
with open (r'C:\Users\30213\Desktop\补习\编程\2. markdown笔记\5. 文件处理\5.2 test.txt',mode='r+',encoding='gbk') as f:
    print(f.readable()) #可读
    print(f.writable()) #可写

True
False
True
True
#读文件f_r(命名规范好区分)
with open (r'C:\Users\30213\Desktop\补习\编程\2. markdown笔记\5. 文件处理\5.2 test.txt',mode='r',encoding='gbk') as f_r:
    print(f_r.readable()) #可读
    print(f_r.writable()) #不可写
    print(f_r.read())
True
False
123
#写文件 f_w
with open (r'C:\Users\30213\Desktop\补习\编程\2. markdown笔记\5. 文件处理\5.2 test.txt',mode='w',encoding='gbk') as f_w:
    print(f_w.readable()) #可读
    print(f_w.writable()) #不可写
    f_w.write('123')
    f_w.flush()
False
True

5.6.2 指针(只作了解)

#指针
#鼠标光标
# 文件指针先打开文件
with open (r'C:\Users\30213\Desktop\补习\编程\2. markdown笔记\5. 文件处理\5.2 test.txt',mode='r+',encoding='gbk') as f:
    
    f.seek(2,0) #按照字节算
    # 第一个参数:指针指向第3个字节后,第二个参数:0表示开始,1表示当前位置,2代表文件末尾

    # f.write('中文')
    print(f.tell()) #光标当前位置
    print( f.read(3)) #按照字符算读3个字符
    f.truncate() #清空文件
    f.truncate(3) #从第三个字节后开始清空

#文件没有插入只有替换
#一个字母=一个字符=一个字节,一个中文=1个字符=3个字节
2
345
#seek(3,0)作用
# 原文本
# 123456789

#无seek(3,0)写入‘中文’
# 中文789

#有seek(3,0)
# 123中文

#seek(0,2) 
# 123456789中文

#要换文件,常用以下方法;指针不常用
with open('test.txt',mode='r',encoding='utf-8') as f:
    data=f.read() #先读出来
    #对data进行修改
    #再写入到另一个文件

posted @ 2025-08-17 10:59  bokebanla  阅读(8)  评论(0)    收藏  举报