文件的类型
文件是数据的抽象和集合
- 文件是数据存储的一种形态
- 文件的展现形态:文本文件和二进制文件
文本文件和二进制文件
- 文本文件和二进制文件只是文件的展示方式
- 本质上,所有文件都是二进制形式存储的
- 形式上,所有文件采用两种方式展示
文本文件
- 由单一编码组成的文件,例如UTF-8
- 由于存在编码,文本文件也可以看成存储着的长字符串
- 例如.txt文件和.py文件
二进制文件
- 直接由比特0和1组成,没有固定的编码
- 一般存在0和1的组织结构,即文件格式
- 例如.exe文件.mp4文件.png文件
文件的打开和关闭
文件的处理步骤,打开-操作-关闭
打开文件
函数
- a=open(filename,mode)
路径
- 可以用文件的绝对路径表示,如果是windows可以用以下函数
- ’D:/pye/f.txt’
- ‘D:\\pye\\f.txt’两个\是为了转义
- 可以用文件的相对路径表示,举例如下
- ’./pye/f.txt’
- ‘f.txt’文件与py文件在相同的路径下
模式(7种)
mode分别从两个方面去写,可读(w)还是可写(r),文本(t)还是二进制(b)
- ‘r’ 默认值,只读模式打开文件,如果文件不存在,返回FileNotFoundError
- ‘w’ 覆盖写模式,如果文件不存在,则创建,如果存在,则覆盖
- ‘x’ 创建写模式,如果文件不存在,则返回FileExistsError
- ‘a’ 追加模式,如果文件存在,则追加到文件的最后面,如果文件不存在,则创建文件
- ‘b’ 以二进制形式打开文件
- ‘t’ 默认值,以文本文件形式打开文件
- ‘+’ 与r/w/x/a 一起使用,在原有功能的基础上增加同时读写的功能
关闭文件的函数
- a.close()
文件的内容读取
常用的读文件函数
- a.read(size) 读文件全部内容,如果给出参数,则读取文件前size个数据
- a.readline(size) 读文件一行内容,如果给出参数,则读取此行前size个数的字符
- a.readlines(hint) 读文件所有行,并且每一行作为元素形成列表,如果给出参数,则返回前hint行
文件的全文本操作
- read() 一次读入,统一处理的
- fo.read(lenth) 分阶段,逐步处理 每次读入长度为lenth的数据,利用无限循环进行读取
- for line in fo.readlines() 一次读入,分行处理
- for line in fo 分行读取,逐行处理
文件的数据写入
常用的写文件函数
- a.write(s) 将文件写入一个字符串或者字节流
- a.writelines(lines) 将一个元素全为字符串的列表元素拼接之后写入文件
- a.seek(offset) 改变文件当前操作指针的位置,0回到文件开头,2到达文件末尾,1回到文件当前位置.主要是因为写操作和遍历操作读取操作所使用的指针一致。