文件操作
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')
转载于:https://www.cnblogs.com/z1115230598/p/9877850.html
转载请注明原文地址: https://win8.8miu.com/read-1507119.html