首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python】文件的读取

文件是数据的抽象和集合

文件是储存在辅助储存器上的数据序列

文件是数据储存的一种形式

文件展现形态:文本文件和二进制文件

所有文件都是二进制形式存储

文本文件是由单一特定编码组成的文件,如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、分行读入,逐行处理

你都学会了吗?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181206G0AEKS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券