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进行修改
#再写入到另一个文件