python3修改文件指定行和4种文件打开方式
方法可以有三个,但其实是一个方法,因为不同的方法都是文件存储的方法,文件修改就只有一个方法:
将文件导入list后,重新写入文件(另一个文件或者当前文件)
1.当前文件读取后,list修改内容,写入另一个新建文件
f = open("D:\data\k1.TXT","r") ff= open ("D:\data\\new\k1.TXT","w") new=[] for line in f: new.append(line) new[9]='1111\n' for n in new: ff.write(n) f.close() ff.close()
以上程序生成的文件跟源文件相比第10行改为1111,其他行保持不变,源文件保持不变
2.当前文件读取后,list修改内容,文件关闭再打开,重新写入
f = open("D:\data\k1.TXT","r") new=[] for line in f: new.append(line) new[9]='8888\n' f.close() f = open("D:\data\k1.TXT","w") for n in new: f.write(n) f.close()
以上程序将源文件第10行改为8888;源文件被覆盖掉了
3.当前文件读取后,list修改内容,指针指向文件头,重新写入
f = open("D:\data\k1.TXT","r+") new=[] for line in f: new.append(line) new[9]='6666\n' f.seek(0) for n in new: f.write(n) f.close()
以上程序将源文件第10行改为6666;源文件被覆盖掉了
以上程序尤其注意一点,文件的open方式是不一样的
下面附上不同open方式的效果:
1、w 写模式,它是不能读的,如果用w模式打开一个已经存在的文件,会清空以前的文件内容,重新写
w+ 是读写内容,只要沾上w,肯定会清空原来的文件
2、r 读模式,只能读,不能写,而且文件必须存在
r+ 是读写模式,只要沾上r,文件必须存在
3、a和a+ 追加模式,也能写,在文件的末尾添加内容
4、rb+、wb+、ab+,这种是二进制模式打开或者读取,一些音乐文件