文件是数据的抽象和集合
文件是储存在辅助储存器上的数据序列
文件是数据储存的一种形式
文件展现形态:文本文件和二进制文件
所有文件都是二进制形式存储
文本文件是由单一特定编码组成的文件,如UTF-8编码
由于存在编码,文本文件被看是存储的长字符串
适用例如:.txt文件.py文件
直接由比特0 1 构成组成,没有统一的字符编码
一般存在二进制0 1 的组织结构,即文件格式
比如.png文件,.avi文件等
看个例子
在D盘新建一个文本文件,保存为f.txt,文件内容为:”中国是个伟大的国家”。
注意
在windows下\是转义符 ,所以用/来代替\
D:\f.txt >>>D:/f.txt
#文本形式打开文件
>>>tf=open(“D:/f.txt”,”rt”)
print(tf.readline())
tf.close()
这就是我们所说的以文本的形式打开一个文本文件,如果再打开过程中你遇到了以下错误:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 14: illegal multibyte sequence
这是因为文件的保存编码和读取方式编码不同造成的,可以试试将第一行代码改成:
tf=open("d:/f.txt","rt",encoding="utf-8")
同时,我们也可以使用二进制形式打开文本文件
>>>bf=open(“D:/f.txt”,”rb”)
print(bf.readline())
bf.close()
当你使用二进制方式读取文件时,就不用考虑编码的问题了。想一想这是为什么?
不同模式打开文件的完全列表:
在打开文件之后,可以进行读文件与写文件
>>>a.read(size) a.readline(size) a.readlines(size) 读文件
>>>a.write(s) a.writelines(lines) a.seek(offset) 写文件
文件内容的读取方法
.read(size=-1)
读入全部内容,如果给出参数,读入前size长度
>>>s=f.read(2)
中国
.readline(size=-1)
读入一行内容,如果给出参数,读入该行前size长度
>>>s=f.readline()
中国是一个伟大的国家
.readlines(hints=-1)
读入文件所有行,以每行元素形成列表
如果给出参数,读入前hint行
>>>s=f.readlines()
[‘中国是一个伟大的国家!’]
文件的全文本操作
fname=input(“请输入要打开的文件名称”)
fo=open(fname,’r’)
txt=fo.read()
fo.close()
这是一种遍历全文件的方法,一次读入,统一处理,这种方法很好,当然也有弊端 ,文件太大的时候不适用。
那是不是还有其他办法呢?
接下来,我们来看另外一种办法:
按数量读入 逐步处理
fname=input(“请输入要打开的文件名称:”)
fo=open(fname.”r”)
txt=fo.read(2)
while txt != “”:
#对txt进行处理
txt=fo.read(2)
fo.close()
对于文本文件 ,每一行都有回车到下一行。在处理分行存储的文件时,采用逐行遍历的方法最为常见。接着往下看:
1、一次读入,分行处理(太耗内存)
2、分行读入,逐行处理
你都学会了吗?
未
完
待
续
领取专属 10元无门槛券
私享最新 技术干货