- 读文件
过程:
a. 打开文件
b. 读文件内容
c. 关闭文件
a. 打开文件
open(path,flag, [encoding],[errors])
path: 要打开文件的路径
flag: 打开方式
r 以只读的方式打开文件,文件的描述符放在文件的的开头
rb 以二进制格式打开一个文件用于只读,文件的描述符放在文件的开头
r+ 打开一个文件用于只读
w 打开一个文件用于写入,如果该文件已经存在会覆盖,不存在则会新创建一个
wb 打开一个文件只用于写入二进制,如果该文件已经存在会覆盖,不存在则会新创建一个
a 打开一个文件用于追加,如果文件存在,文件描述符将会放在文件末尾
encoding:编码方式
errors: 错误处理
path = 'D:\python学习进度\day13文件读写\\file1.txt'
f = open(path,'r',encoding='utf-8')
b. 读文件
read() - - 读取全部内容
read(n) - - 读取指定的字符数
readline() - - 读取整行 包括 \n 字符
readlines() --- 读取所有行 返回列表
# 修改描述符的位置
f.seek(0)
c. 关闭文件
f.close()
简单的完整的过程
with open(path,'r',encoding='utf-8') as f2:
print(f2.read())
写文件
读一个文件
path = 'file2.txt'
f = open(path,'w',encoding='utf-8')
写文件
1. 将文件写入缓冲区
f.write('hello world')
2. 刷新缓冲区 - 直接把内部缓冲区的数据立刻写入文件,而不是被动的等待自动刷新缓冲区
f.flush
3. 关闭文件
f.close
简单的写文件方法
with open(path,'a') as f2:
f2.write('name ,is')
编码与解码
path = 'file4.txt'
编码
with open(path,'wb') as f1:
str = 'sdfsd sdfa fa a'
f1.write(str.encode('utf-8')) # 二进制写文件进行编码
with open(path,'rb') as f2:
data = f2.read()
print(data)
new_data = data.decode('utf-8') # 解码
print(new_data)
总结:二进制的存文件 读文件 要编码 再解码
import pickle # 数据持久性模块 相当于把数据存到磁盘中
myList = [1,2,3,4,5,'sdfd']
path = 'file1.txt'
with open(path,'wb') as f:
pickle.dump(myList,f)
f.close()
读取
with open(path,'rb') as f1:
tempList = pickle.load(f1)
print(tempList)
f1.close()