在实际开发中,常常需要对程序中的数据进行持久化操作,而实现数据持久化最直接简单的方式就是将数据保存到文件中
一.读文件操作
在Python中实现文件的读写操作其实非常简单,通过Python内置的open函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象,接下来就可以对文件进行读写操作了。这里所说的操作模式是指要打开什么样的文件(字符文件还是二进制文件)以及做什么样的操作(读、写还是追加)
1.读出文件所有内容
with open("www",encoding=("utf-8")) as file_object: #www为一个文本文件
contents =file_object.read()
print(contents) #读出文件内容
2.读文件前五行内容
f = open("shige","r",encoding="utf-8") #shige为文件
for i in range(5):
print(f.readline())
f.close()
3.第十行不打印
f = open("shige","r",encoding="utf-8")
for index,line in enumerate(f.readlines()):
if index == 9:
print("----------------分割线——————————————")
continue
print(line.strip())
4.逐行读取文件
with open("..\DIR_file\pi_digits",encoding=("utf-8")) as file_object:
for line in file_object:
print(line.rstrip())
二.写入文件
1.覆盖写入文件
f = open("shige1",'w',encoding="utf-8") #文件句柄,(文件的内存对象);模式为新建一个文 件。
f.write("戈尔泰,大哥\n")
f.write("我爱北京天安门\n")
f.write("天安门上太阳升\n")
f.close()
以上代码在写入时,如果原文件内容不为空则删除源文件内容后在写入新内容
2.追加写入文件
f = open("shige1",'a',encoding="utf-8") #文件句柄,(文件的内存对象);a = append表示 追加,也不具有读操作功能
f.write("戈尔泰,大哥\n")
f.write("我爱北京天安门\n")
f.write("天安门上太阳升\n")
f.close()
以上代码在写入时,将内容追加在源文件内容的后面
3.文件的强制持久化
在我们安装软件的时候,出现的进度条,实际上就是这种持续刷新的过程。
#!/bin/python
import sys,time
for i in range(20):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1)
4.文件截断
f =
open("shige","a",encoding="utf-8")
f.truncate(20)
5.修改文件
-
将文件加载到内存中,在内存中修改
-
打开一个新文件,在新文件中修改
#Author:Anliu
f =
open("write_file","r",encoding="utf-8")
f_new =
open("write_file.bak","w",encoding="utf-8")
for line in f:
if
"徐志摩" in line:
line = line.replace("徐志摩","anliu")
f_new.write(line)
f.close()
f_new.close()