一.文件储存
1.想把数据永久保存,数据要保存到硬盘上,就需要操作系统操作硬盘,操作系统把复杂的硬件操作封装简单的操作接口,暴露给用户或应用程序,文件就是操作系统把硬盘封装的简单接口,是一个虚拟的概念,我们只要操作文件就可以保存.
2.操作文件的流程
1.打开文件得到文件句柄(路径),并把文件句柄赋值给一个变量
2.同过操作文件句柄,从而达到操作文件
3.关闭文件
# 一.在Python中 # 1.打开文件,得到文件句柄并且赋值给一个变量 # f = open('D:\Python学习\day07\字符编码.py','r',encoding='utf-8') # 默认打开的是r # 2.通过文件句柄来操作文件 # data = f.read() # 3.关闭文件 # f.close() # 二.打开文件夹的过程 # 1,应用系统向操作系统发出请求 # 2.操作系统操作硬件,将复杂的硬盘操作封装成一个简单的接口(文件夹),返回一个文件句柄给应用程序用 # 3.应用程序操作文件句柄赋值给变量f # 三.打开文件 # (1).打开文件在Python2和Python3中的区别 # Python2:file(),open()都能打开文件并对文件进行处理 # file():为文件类,用来打开文件,相当于构造文件 # open():打开文件,使用Python的函数进行操作 # 一般open()打开文件进行操作,file()当做一个类型,比如type(f) is file # python3:只要打开文件只有一种选择,就是open() # (2).打开文件的模式: # r: 只读模式(默认模式,文件必须存在,不存在报错) # w:只写模式(不可读,不存在文件就创建,存在清空内容在写,写一次把上面的清除) # a:追加写模式(不可读,不存在创建,存在追加内容,不把前面的内容删除) # (3).非文本文件 # rb # wb # ab # 以b打开文件,读到的内容字节内容,不能指定字符编码 # 四.操作文件的方法 # f.read() # 读取文件的所有内容,光标移到末尾 # f.readline() # 读取文件一行内容,光标移到第二行首部 # f.readlines() # 读取每一行内容,存放于列表中 # # f.write('222\n333\n') # 针对文本模式的写,需要自己写换行字符 # f.write('111\n222\n'.encode('utf-8')) # 只针对b模式的写,需要自己写换行字符 # f.writelines('333\n','444\n') # 文本模式 # f.writelines([bytes('222\n',encoding='utf-8'),'444\n'.encode('utf-8')]) # b模式
五.文件内光标移动
# 1.read(3) # 1.文件打开方式为文本模式,代表读取3个字符 # 2.文件打开方式为b模式,代表读取个字节 # 2.其余文件光标移动都是以字节为单位比如seek,tell,truncate # 注意: # 1,seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论下那种模式下进行 # 都是以bytes为单位移动 # 2.truncate是截断文件,所以文件的打开方式必须科可写,但不能用w或w+等模式打开, # 因为那样直接清空了文件了,所以truncate要在r+或a或a+等模式下测试效果
六.文件的修改
# 文件的内容是存在硬盘上,所以只存在覆盖不存在修改,我们看到的修改文件, # 都是模拟出来的效果,具体有两种实现方式: # 方式一:将硬盘上存放的改文件内容全部加载到内存,在内存中是可以修改的,修改完毕后, # 再由内存覆盖到硬盘 # # 方式二:将硬盘存放 的改文件内容一行一行的读入到内存,修改完毕后就写入新文件 # 最后用新的文件覆盖原来的文件
来源:https://www.cnblogs.com/zhuangshenhao/p/11143968.html