【文件读写】
读文件:
过程:
1:打开文件
open(path,flag[,encoding][,errors])
path:要打开的文件
flag:打开方式
·r:以只读方式打开文件文件的描述符放在开头
·rb:以二进制格式打开一个文件,而且用于只读,文件的描述符在开头
r+:打开一个文件用于读写 文件描述符放在开头
·w:以只写方式打开文件 文件描述符放在开头,如果文件已经存在会覆盖,如果不存在则会创建
·wb:以二进制格式打开一个文件,而且用于只写,文件描述符在开头
w+:打开一个文件用于读写,文件描述符放在开头
a:打开一个文件用于追加,如果文件存在,文件描述符放到文件末尾
a+:打开一个文件用于读写,
encoding:编码方式
errors:错误处理
eg:
path = r"/usr/local/tmp/q.txt"
f = open(path, "r",encoding="utf-8",errors="ignore")
2:读取文件类容:
读取文件的全部类容:
(1):str = f.read() ---适用于小文件
print(str)
(2):str = f.read(20)---读取指定字符数
print ("*"+str+"*")
读取整行包括"\n"字符:
(1):str = f.readline()
print (str)
(2):str = f.readline(10)-----读取指定字符数
print (str)
读取所有行并返回一个列表
(1) list = f.readlines()
print(list)
(2) list = f.readlines(20)----给定的数字大于0 返回实际size字节的行数
print (list)
修改描述符的位置:
f.seek(0)
一个完整的过程:
try:
f = open(path,"r")
print(f,read())
finally:
if f:
f.close()
简单方法:
with open(path,"r") as f:
print (f,read())
3:关闭文件:
f.close
写文件:
过程:
打开文件:
path = r"/usr/local/tmp/q.txt"
f = open(path, "r",encoding="utf-8",errors="ignore")
写文件:
1:将信息写入缓冲区
f.write("hello world")
2:刷新缓冲区,直接把内部缓冲区的数据立即写入文件,而不是被动的等待自动刷新写入
f.flush()
while True:
pass
简单方法:
with open(path,"a") as f:
f.write("hello world")
关闭文件:
f.close()
【list/tuple/dict/set 的文件操作】
写入:
import pickle# 数据持久性模块
myList = [1,2,3,"tom is a nice man "]
path = /tmp/1.txt
f = open(path,"wb")
pickle.dump(myList,f)
f.close()
读取:
f = open(path,"rb")
tempList = pickle.load(f)
print(tempList)
f1.close()