欢迎光临散文网 会员登陆 & 注册

【代码世界 No.2】Python学习笔记 #2 - 读取文本文件(.txt)的几种方式

2021-01-12 22:56 作者:艾了哈  | 我要投稿

        利用Python读取文本格式文件(.txt)的时候,存在多种方式进行读取,需要根据业务和数据特点来选择。本篇对比几种简单常用的读取方式。

数据文件

     要打开的文本文件名称为 “ 数据文本文件 ”,和 python文件 - readtxt.py 放置在同一个目录下,文件中的内容如下:


    比较方便的方式是直接打开文件,保存为一个对象,然后逐行读取。

    其中,open()是打开要读取的文件,表示只读方式打开,encoding为编码。

    这里用 with 的方法打开,不用再进行close()关闭文件的操作了,返回的fobj是一段数据对象,可以对其进行读取等操作。

    对于

        从结果发现每行下面多了一行空行,因为输出时会自动添加一个换行符,解决办法是对每一行消除右边的换行符,即 改为print(line.rstrip())。


一、read、readlines和readline

这三个都是Python自带的 I/O 接口。    

1)read() 可以直接读取整个文件,返回的是字符串类型。

    2)readlines() 也是一次性读取整个文件,并其保存为一个列表,其中的每一行就是列表中的一项。这种方法对于特别大型的文件缺点是会多占用一些内存。

         因为是列表,如果知道要提取的行数的话,可以用 readlines()[10:50]读取特定行数内容(10-49行)。

    3) readline() 可逐行读取文件,好处是内存占用小,缺点是速度会慢(但是一般正常大小的文件感觉不出来区别),由于是逐行读取,所以要想遍历读文件的话,需要用循环结构语句来操作。


            上面这几个方法中如果不需要隔一行显示,可用rstrip()来去掉换行符。

二、linecache

    linecache()是Python自带的一个模块,使用前需要引用这个模块,其中 getline("文件“ , 行数) 可以读取特定行的数据,需要注意的是从0开始计数的,因此 下方的 第四行,其实提取的是文件中第5行的数据。

提取第5行的数据
linecahe.getline结果


三、枚举 enumerate

        利用枚举方式,可以逐行的获取行号和内容

部分读取结果

    除了上面这几种基本方式外,数据分析的时候还可以用pandas的模块read_csv()读取。

Tips:

打开文件时候的几个常用标识符:

r :   读取文件,文件不存在会报错

w:   写入文件,若文件不存在则会先创建再写入,会覆盖原文件

a :   写入文件,若文件不存在则会先创建再写入,不会覆盖原文件,追加在文件末尾

rb,wb:  用于读写二进制文件,例如图像、音频视频等。


【代码世界 No.2】Python学习笔记 #2 - 读取文本文件(.txt)的几种方式的评论 (共 条)

分享到微博请遵守国家法律