目录
常见的文件操作(接上文)
文件的写操作
有'w'和'a'两种mode可以进行写入。
‘w’:删除原有内容重头写入。
'a':在原有内容后追加。
基础语法:
f = open(name,'w'or'a',encoding)
f.write(写入的内容)
f.flush() #内容刷新
f.close()
为了避免频繁的操作硬盘导致效率下降,所以直接调用write()的内容并未真正写入文件,而是会放在程序的内存中,成为缓冲区。当调用flush()时,内容才会真正写入文件。
以下为几种操作方式:
1.‘w’
如果文件不存在,则创建新文件进行写入。
f = open("D:\PythonFileTst\demo1.txt",'w',encoding="UTF-8")
f.write("hello world!!!")
f.flush()
f.close()
在路径下得到文件demo1.txt:
如果文件存在,将会删除其原有内容,并在开头位置进行写入。
例如有文件D:\PythonFileTst\e1.txt:
进行重新写入:
f2 = open("D:\PythonFileTst\e1.txt",encoding="UTF-8")
f2.write("我们删除了原有内容并进行了重写!!")
f2.flush()
f2.close()
运行之后的e1.txt:
2.'a'
如果文件不存在,创建一个新文件进行写入,和'w'模式相同。
如果文件存在,将在原文件内容之后追加写入。
例如有文件D:\PythonFileTst\e2.txt:
进行追加写入:
f3 = open("D:\PythonFileTst\e2.txt",'a',encoding="UTF-8")
f3.write("\n我们在你后面追加写入啦!!")
f3.flush()
f3.close()
运行后的e2.txt:
结论
进行文件的写入操作时,要注意操作要求,防止使用'w'将本不该删除的内容删除了。同时,调用完write()将内容添加后,要使用flush()刷新内容,将内容从缓冲区真正写入到文件中,或者记得用close()关闭文件,自动将write()的内容刷新。
文件操作综合练习
1.
需求:有一份账单文件,记录了消费收入的具体记录,内容如下(此处不方便填写,已存入D:\PythonFileTst\bill.txt中) 读取文件 将文件写出到 bill.txt.bak文件作为备份 同时,将文件内标记为测试的数据行丢弃
解:此时有D:\PythonFileTst\bill.txt,其内容为:
代码:
f1 = open("D:/PythonFileTst/bill.txt",'r',encoding="UTF-8")
f2 = open("D:/PythonFileTst/bill.txt.bak",'w',encoding="UTF-8")
for line in f1:
if line.count("测试") == 0:
f2.write(line)
f2.flush()
f1.close()
f2.close()
运行成功后,我们得到
D:/PythonFileTst/bill.txt.bak
将其打开,得到: