Python第五篇--文件操作
文件操作主要就是打开,读,写,保存,关闭
f=open(filename)
f.read(length)读多少,如果没有length就是全部读到内存中 f.readline()这个是读一行。读取的时候会有一个光标,如果执行一次readline则下次再执行其他读操作,从第二行开始进行以此类推
f.write(data)
f.close()保存并关闭
文件操作的模式
r w a 分别表示只读,创建,追加模式。python中文件操作只能存在一种模式,不能读进来修改再创建。w模式相当于创建,如果存在这个文件名,则覆盖。不存在会创建
f=open(filename,mode="w")
f=open(file="d:/test_file.txt",mode="w") f.write("this is the first line \n") f.write("this is the second line") f.close()
追加模式下,文件追加内容还是f.write(data)并不是用append!!!!!
默认模式是r
文件循环读行
for line in f:
print(line)
文件操作的其他方法
seek()当前光标后移几个字节,UTF-8中一个中文3个字节,gbk中一个中文4个字节
flush()强制内存刷到硬盘上,因为文件write其实是先写到内存上,然后满了才刷到硬盘,因为硬盘很慢,避免频繁的硬盘操作。这个在很重要的内容保存时使用,避免掉电丢失数据
其他懒得写了。。。
混合模式操作文件(不常用,只是可以用)
w+ a+
写入后可以读出,读入后可以追加写,追加后可以读,但是光标会到最后需要seek(0)
seek指定位置,修改了内容默认的是会将后面内容覆盖的,就像insert模式
如果将一个文件的内容读出来,判断如果有XXX替换为***
思路是先读出来每一行,判断是否有XXX,replace,最后重命名一下
文件重命名需要用到os工具包
os.rename()
import os f=open(file="d:/test_file.txt",mode="r") newf=open("d:/test_file_new.txt","w") for line in f: line=line.replace("XXX","***") newf.write(line) newf.close() f.close() os.replace("d:/test_file_new.txt","d:/test_file.txt") #如果替换后的文件已经存在了,会覆盖,就和重命名后提示是否覆盖,点击了是效果一样
走自己的路