文件:数据的抽象和集合文件是存储在辅助存储器上的数据序列
文件是数据存储的一种形式
文件展现形态:文本文件和二进制文件
文本文件 VS. 二进制文件文件文件和二进制文件只是文件的展示方式
本质上,所有文件都是二进制形式存储
形式上,所有文件采用两种方式展示
文本文件由单一特定编码组成的文件,如UTF-8编码
由于存在编码,也被看成是存储着的长字符串
适用于例如:.txt文件、.py文件等
二进制文件直接由比特0和1组成,没有统一字符编码
一般存在二进制0和1的组织结构,即文件格式
适用于例如:.png文件、.avi文件等
文件的打开关闭
文件处理的步骤: 打开 - 操作 - 关闭
file_object = open("filename", "openmode")
... #操作
file_object.close()
with open("filename", "openmode") as file_object:
... #操作
filename
openmode
打开模式
openmodedetails'r'只读模式,默认值,如果文件不存在,返回FileNotFoundError'w'覆盖写模式,文件不存在则创建,存在则完全覆盖'x'创建写模式,文件不存在则创建,存在则返回FileExistsError'a'追加写模式,文件不存在则创建,存在则在文件最后追加内容'b'二进制文件模式't'文本文件模式,默认值'+'与r/w/x/a一同使用,在原功能基础上增加同时读写功能
文件内容的读取
operationdetailsf.read(size=-1)读入全部内容,如果给出参数,读入前size长度f.readline(size=-1)读入一行内容,如果给出参数,读入该行前size长度f.readlines(hint=-1)读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行f.write(s)向文件写入一个字符串或字节流f.writelines(lines)将一个元素全为字符串的列表写入文件f.seek(offset)改变当前文件操作指针的位置,offset含义如下:0 – 文件开头; 1 – 当前位置; 2 – 文件结尾
文件的全文本操作
一次读入,统一处理
fo = open(fname,"r")
txt = fo.read()
...#对全文txt进行处理
fo.close()
按数量读入,逐步处理
fo = open(fname,"r")
txt = fo.read(2)
while txt != "":
#对txt进行处理
txt = fo.read(2)
fo.close()
文件的逐行操作
一次读入,分行处理
fo = open(fname,"r")
for line in fo.readlines():
print(line)
fo.close()
分行读入,逐行处理
fo = open(fname,"r")
for line in fo:
print(line)
fo.close()
数据文件的写入
fo = open("output.txt","w+")
ls = ["China", "France", "America"]
fo.writelines(ls)
fo.seek(0)
for line in fo:
print(line)
fo.close()