python中文本打开时读写按照什么方式_【代码世界 No.2】Python学习笔记 #2 - 读取文本文件(.txt)的几种方式...

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

数据文件

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

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

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

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

411aead8b019b94376c6fcfc4e0fc95f.png    对于

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

一、read、readlines和readline

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

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

8aa577f451470c777e30e088e73f7f86.png

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

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

b17126825a3cad137d5c96798c3cc2a3.png

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

1bd9a14d3c7c4db72686a860d84f40b5.png

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

二、linecache

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

ac31a6c72c505318b62689b24976601b.pnglinecahe.getline结果

三、枚举 enumerate

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

190c0e17f48852fe3b56c33f17ad8e90.png部分读取结果

63d5d86b21fc6ca272a037de1fe9cbb5.png

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

Tips:

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

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

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

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值