文件处理

半世苍凉 提交于 2020-03-30 11:42:41

一.文件储存

  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+等模式下测试效果

 

六.文件的修改

#     文件的内容是存在硬盘上,所以只存在覆盖不存在修改,我们看到的修改文件,
#     都是模拟出来的效果,具体有两种实现方式:
# 方式一:将硬盘上存放的改文件内容全部加载到内存,在内存中是可以修改的,修改完毕后,
#         再由内存覆盖到硬盘
#
# 方式二:将硬盘存放 的改文件内容一行一行的读入到内存,修改完毕后就写入新文件
#         最后用新的文件覆盖原来的文件
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!