文件操作
文件操作
r 只读 w 写 a 追加 w模式 写的时候如果没有文件则会自动创建文件,有的话刚开始写入的时候会清空在写入 r模式读取一行的时候,在末尾会默认跟一个\n(换行符)\r(回车) 只读模式r 正常文本 rb模式下,可以不指定打开文件的编码,但是在写文件的时候必须将字符串转化为utf-8的bytes数据 只读rb 字节 read() 默认全读完 可以指定读几个 read(n) 读取n个字符,需要注意的是,如果再次读取的时候,那么会在当前位置接着读 readline 一行一行读 a 追加 在文本末尾追加 r+ 读写模式 必须是先读在写 在末尾添加 w+ 写读模式 先将所有的内容清空,然后写入.最后读取.但是读取的内容是空的,不常用 a+ 追加写读 不论先读还是后读 都是读取不到数据的
路径
相对路径 绝对路径
相对路径:同一个文件夹下的文件. 相对于当前这个程序所在的文件夹而言. 如果在同一个文件夹中. 则相对路径就是这个文件名. 如果在上一层文件夹. 则要../
基本操作
seek(0)移动光标到文件最开头 seek(0,1) 两个参数的时候表示光标在当前位置 seek(0,2) 表示光标在末尾 seek(n) 光标移动到n的位置,注意,移动的单位是bytes,所有如果是UTF-8的中文部分药是3的倍数 flush 刷新 tell() 查看光标位置 truncate() 截断 将光标后面的删除 深坑 在r+模式下,如果读取了内容 .不论读取的内容多少.光标显示的是多少.自爱写入多少或者操作文件的时候都是在结尾进行操作
修改文件
文件修改:只能将文件的内容读取到内存中,将信息修改完毕,然后将源文件删除,将新文件的名字改成老文件的名字 import os with open('s',mode='r',encoding='utf-8')as f1,\ open ('s_new',mode='w',encoding='utf-8')as f2: content=f1.read() content_new=content.replace("旧","新") f2.write(content_new) os.remove('s') os.rename('s_new','s')
整行操作
整行操作 import os with open('s',mode='r',encoding='utf-8')as f1,\ open ('s_new',mode='w',encoding='utf-8')as f2: for line in f1: new_line=line.replace('旧','新') f2.write(new_line) os.remove('s') os.rename('s_new','s')