文件操作实用知识点
文件处理模式:读(r/rb),写(w/wb),读写(r+),追加(a),修改(读写模式混合)
一、读模式:
f = open("aaa.txt","r",encoding=" ")
注意点:读取之后光标就停留在文件末尾。
encoding:表示将硬盘上的二进制以此编码断句,在转换成Unicode字符串类型,并在内存中显示字符
如果不填,会默认用系统编码(windows是GBK)
二、写模式(创建模式):
f = open("aaa.txt","w",encoding=" ")
注意点:文件打开后就直接在文件头开始写,未关闭会继续在后面添加,文件关闭重启后就相当于创建一个新文件(覆盖原有内容)
encoding:写入的是Unicode字符串类型,内部会根据此编码转换成相应的编码二进制
如果不填,系统会根据你所填的字符串确定编码方式,下次读取的时候你就要以这个编码方式读取
三、追加模式:
f = open("aaa.txt","a",encoding=" ")
注意点:文件一打开,光标就会自动移到文件末尾,再开始写
encoding:写入的是Unicode字符串类型,内部会根据此编码转换成相应的编码二进制
如果不填,系统会根据你所填的字符串确定编码方式,这种情况基本会乱码,所以必须知道原先文件的编码方式
四、修改模式==读写模式(先读后写):
f = open("aaa.txt","r+",encoding=" ")
1、用seek方法将光标定位到某个位置,在write方法写入。此方法字符不一样长时,会覆盖之后的字符。(基本不用此方法)
2、读到内存里,在进行增删改查,在将内容写到文件里。(占内存的方法)
3、新建一个文件,进行一行读,一行写,有需要修改的进行修改再写入,不修改的直接写入就可以了(占硬盘的方式)
代码举例如下:
f = open("aaa.txt","r",encoding="utf8")
f_new = openopen("bbb.txt","w",encoding="utf8")
str_old = “李云龙”
str_new = "赵子龙“
for line in f:
if str_old in line:
new_line = line.replace(str_old,str_new)
else:
new_line = line
f_new.write(new_line)
f.close()
f_new.close()
五、一些方法牢记
f.read() : ·读取文件所有内容,保存原有格式,字符类型为str
f.readline() : 只读取一行字符串
f.readlines(): 读取文件所有内容,并将每一行作为一个元素,写入一个列表中
f.write() : 将内容写入文件中,文件打开后一直调用此方法,写入的内容会以追加的形式添加在文件末尾。关闭后重新启动就会删除原先内容,从文件头开始写
f.writelines(): 里面填写列表,列表中的每一个元素会合并成一行str,写入文件中
f.seek() : 将光标移动到某个位置
f.readtable(): 判断文件是否可读
f.writable() : 判断文件是否可写入
f.tell() : 返回当前光标所在的位置
f.truncate(只读模式下无法使用):
指定长度的话,就从文件开头开始截断指定长度,不指定长度的话,就从当前位置到文件尾部的内容全去掉。此方法不返回任何值