1、文件读取
'''
过程
1、打开文件
2、读文件内容
3、关闭文件
#1、打开文件
open(path, flag[, encoding][,errors])
path:要打开文件的路径
flag:打开方式:
r :以只读的方式打开文件,文件的描述符放在文件的开头
rb:以二进制格式打开一个文件用于只读
r+:打开一个文件用于读写,文件的描述符放在文件的开头
w :打开一个文件只用于写入,如果该文件以及存在,会覆盖,如果不存在,会创建一个新文件;
wb:打开一个文件只用于写入二进制,如果该文件以及存在,会覆盖,如果不存在,会创建一个新文件;
w+:打开一个文件用于读写
a :打开一个文件用于追加,如果文件存在,文件描述符将会放到文件末尾;
a+:
encoding:编码方式
errors:错误处理
#ignore 忽略错误
path = "/Users/guohong/Desktop/test"
#f = open(path, "r",encoding = "utf-8",errors="ignore")
f = open(path, "r")
#2、读文件
#1、读取文件的全部内容
#str1 = f.read()
#print(str1)
#2、读取指定字符数
#str2 = f.read(10)
#print("*"+str2+"*")
#str3 = f.read(10)
#print("*"+str3+"*")
#3、读取整行,包括"\n"字符
#str4 = f.readline()
#print(str4)
#str5 = f.readline()
#print(str5)
#4、读取指定字符数
#str6 = f.readline(10)
#print(str6)
'''
#5、读取所有行并返回列表
path = "/Users/guohong/Desktop/test"
#f = open(path, "r",encoding = "utf-8",errors="ignore")
f = open(path, "r")
list7 = f.readlines()
print(list7)
#6、若给定的数字大于0,返回实际size字节的行数
#list8 = f.readlines(25)
#print(list8)
print("******************")
#7、修改描述符的位置
f.seek(10)
str9 = f.read()
print(str9)
#3、关闭文件
f.close()
#一个完整的过程
try:
f1 = open(path,"r",encoding="utf-8")
print(f1.read())
finally:
if f1:
f1.close()
with open(path, "r", encoding="utf-8") as f2:
print(f2.read())
-----------------------------------------------
2、写文件
path = "/Users/guohong/Desktop/test2"
#f = open(path, "a")
#写文件
#1、将信息写入缓存区
#f.write("zuijia")
#2、刷新缓存区
#直接把内部缓存区的数据立刻写入文件,而不是被动的等待,自动刷新缓存区写入
#f.flush()
'''
import time
while 1:
f.write("sunck is a good man")
f.flush()
time.sleep(1)
f.close()
'''
with open(path, "a") as f2:
f2.write("2222222222222222222222222")
----------------------------------
3、编码和解码
path = "/Users/guohong/Desktop/test5"
with open(path, "wb") as f1:
str = "sunck is a goo 是man"
f1.write(str.encode("utf-8"))
with open(path,"rb") as f2:
data = f2.read()
print(data)
print(type(data))
newData = data.decode("utf-8")
print(newData)
print(type(newData))
-------------------------------------------
import pickle #数据持久性模块
mylist = [1,2,3,4,5,"sunck is "]
path = "/Users/guohong/Desktop/test7"
f = open(path, "wb")
pickle.dump(mylist,f)
f.close()
#读文件
f1 = open(path, "rb")
tempList = pickle.load(f1)
print(tempList)
f1.close()