python读取文件操作,及大数据常用的读取函数readlines()

我们为什么需要python的读取操作

文件读写操作的重要性,在上一章节中我们举了个有关计算机内存和硬盘的例子,作了相关的介绍,其中我们提到的一点是,通常情况下,我们不用Python的读写功能来开发相应的功能,因为在PC端的软件当中,python的性能并不好,比起c/c++,c#这样的计算机语言来说,劣势较为明显。但是,我们还是要详细地来介绍python的读写操作,尤其是读取的操作,因为大数据和机器学习当中会经常性地遇到。为什么呢?

想想,大数据和机器学习,尤其是机器学习,是不是需要用算法来运算数据、探究数据的价值,并运用数据,这一操作就需要将数据读取到计算机的内存当中进行运算,硬盘只是保存数据而已,所以,我们就需要python的读取操作了。


python读取文件操作的三大基本步骤

和之前章节中介绍的python的文件写入操作一样,我们也先来简单介绍一下python读取文件操作的三大基本步骤:

  • 打开文件:open(filepath, mode, encoding);
  • 读取文件:read()
  • 关闭文件:close()

python读取文件操作实例

f = open('/path/filename.txt', 'r', encoding=‘utf-8’)
f.read()
f.close()

代码解析

字符串'/path/filename.txt' 是我们保存文件的相对路径,'r'是我们读取文件的模式,encoding是编码格式。

注意:在这个过程中,我们是将文件的数据读取出来,加载在计算机的内存当中,并赋值给变量f。


with语句

跟文件的写入一样,通过with语句,可以不用写close()函数

with open('/path/filename.txt', 'r', encoding='urf-8') as f:
    f.read()

read()函数

除了在开发机器学习模型之外,鄙人在python的其他的实战当中,从未用到文件的读写操作及其函数(之前有用python作开发桌面软件——一个类似word的软件——的练习,有用过),在机器学习当中,运用最多的读取函数则是readlines()而不是read()。

read( size ),里头的可选参数size可以用于读取“size”大小的数据,返回的是字符串或字节对象,若是size的值没有填写,或者是个负值,那么read()函数将读取文件的所有内容,这也是用python开发pc软件中“复制黏贴”的功能比较常用的函数。


readlines()函数

readlines()函数是将文件当中的所有行,一行一行地读取,并逐一写入一个列表list内,最终返回这个列表。

机器学习当中为什么会经常用到readlines()函数?我们来看一下下面这个表格:

ID性别年龄地址所购商品
12182《python教程》
21253《python全栈教程》
31266《python机器学习实战》

我们来观察一下上面的数据,通常情况下,我们会将数据保存在一个.txt或excel表格当中,一行代表一个统计样本,有多少行就代表多少的统计量,一列则代表该样本的一个特征维度,多少列就代表多少个维度,比如3维度、10维度、100维度这样子,上面的表格表示的是3维度,ID和所购商品两列不算特征维度,其中所购商品可以表示成我们所有分类的标称型数据,与特征维度有不同的职能。

而正是因为统计样本是一行一行的,我们在处理数据(训练模型之前)的时候,通常就需要从文件中逐行逐行地读取数据,处理数据,比如归一化之类的,然后好在内存当中“拼装”成矩阵,以供机器学习的算法进行运算。所以,readlines()在机器学习当中更为常用,经常配合for循环来对数据进行处理、拼装。

readlines()的实例感觉没什么必要,在以后讲解到大数据或机器学习的时候,我们会继续讲解。下面我们再介绍读取操作的另一个函数readline()与readlines()就差一个复数形式的“s”。


readline()函数

readline()函数就是读取一行数据,用法除了size参数之外,就跟read()差不多,也是open()打开文件,readline()读取数据,close()关闭文件,实例就不多举了。


下一章节,我们将继续介绍python文件读写的模式mode。


全栈后端 / python教程 :


























Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.