1.光标移动
read(3)
1).文件打开方式为文本模式时,代表读取3个字符
2).文件打开为b模式时,代表读取3个字节,中文一个字符代表3个字节,英文一个字符就是一个字节。其余的文件内光标移动就是以字节为单位的。seek有三种移动方式0,1,2,其中1,2必须是在b模式下运行,无论哪种模式,都是以字节为单位移动的。truncate是截断,文件的打开方式是可写,不能用w或者w+来写,这样的话原来的文件就会被清空,所以我们可以用r+或者a+来进行打开
2.文件的修改
1)先将数据由硬盘读到内存(读文件)
2)在内存中完成修改(字符串的替换)
3)再覆盖原来的内容(写文件)
with open(r'test02.txt','r',enconding='utf-8') as f: data = f.read() print(data) print(type(data)) with open(r'test02.txt','w',enconding='utf-8') as f: res = data.replace('egon','jason') print(data) f.write(res)
方式2:
1)创建一个新文件
2)每行每行读取老文件内容到内存进行修改
3)将老文件删除,新文件名字改成老文件名字
import os with open (r'test02.txt','r',enconding='utf-8') as read_f, open(r'test02.swap','a',encond='utf-8') as write_f: for line in read_f: new_line = line_replace('egon','jason') write_f.write(new_line) os.remove('testo2.txt') os.rename('test.swp','test02.txt')