实验介绍
在自然语言处理的第一步,我们要面对的是各种各样以不同形式表现的文本数据,比如,有的是纯 txt 文档,有的是存储在 Excel 中的表格数据,还有的是无法直接打开的 pkl 文件等。刚开始接触编程的同学在这里就犯难了,这可怎么把文本数据拿来进行代码层面的操作呢?
事实上,会者不难,针对这些不同类型的数据,可以基于 Python 中的基本功能函数或者调用某些库进行读写以及作一些基本的处理。本实验将介绍一些常见形式文件的操作,相信在学完本实验以后,大家能够非常快速地上手读写及处理大部分类型的文本数据。
知识点
- txt 文本数据的读写
- CSV 及 Excel 文本数据的读写
- 更多的 DataFrame 操作
- 数据规模太大怎么办
txt 文本数据的读写
对于 txt 文本数据,Python 中的内置函数 open() 和 write() 就可以实现读取或者写入操作。
open() 函数用于打开一个文件,创建一个 file 对象,之后,相关的方法才可以调用它进行更多的操作。 对于 open() 函数,我们主要关注三个传入的参数:
- file: 文件路径(相对或者绝对路径)。
- mode: 文件打开模式。
- encoding: 编码格式,一般使用 utf-8。
其中,mode 决定了打开文件的模式,也就是限定了可以对文件做什么样的操作,比如只读,写入,追加等,这个参数是非强制的,默认文件访问模式为只读 (r),以下是常用的模式:
- r : 读取文件,若文件不存在则会报错。
- w: 写入文件,若文件不存在则会先创建再写入,若存在则会覆盖原文件。
- a : 写入文件,若文件不存在则会先创建再写入,若存在不会覆盖原文件,而是在文件中继续写入内容。
- rb, wb:分别与 r, w 类似,但用于读写二进制文件。
- r+ : 可读、可写,若文件不存在会报错,在写操作时会覆盖原文件。
- w+ : 可读,可写,文件不存在先创建,若存在会覆盖。
- a+ :可读、可写,文件不存在先创建,若不存在不会覆盖,在文件中继续写入内容。
注:utf-8(8 位元,Universal Character Set/Unicode Transformation Format)是针对 Unicode 的一种可变长度字符编码。它可以用来表示 Unicode 标准中的任何字符,而且其编码中的第一个字节仍与 ASCII 相容,使得原来处理 ASCII 字符的软件无须或只进行少部份修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。
接下来应用 open() 读取一个 txt 文件,创建一个 file 对象,并应用 readlines() 读取相关内容。
首先从线上环境中下载文件:
教学代码:
!wget -nc "https://labfile.oss.aliyuncs.com/courses/3205/idiom.txt"
提示:打开右侧环境中的
Code.ipynb,开始动手练习吧。
读取文件 "idiom.txt" 中的内容并打印出来:
f = open("idiom.txt","r", encoding="utf-8")
poem = f.readlines()
print(type(poem), poem) # 从结果可见,readlines() 方法会返回一个 list,包含所有的行,每一行为 list 中的一个元素
<class 'list'> ['路遥知马力,日久见人心。\n', '千学不如一看,千看不如一练。\n', '岁寒知松柏,患难见交情。\n']
通过以上的小练习,我们知道了 readlines() 方法的特点是,每次按行读取整个文件内容,将读取到的内容放到一个列表中,返回 list 类型。事实上,还存在另外两种读取方法:
read():读取整个文件,将文件内容放到一个 str 类型的变量中,但是,如果文件非常大,尤其是大于内存时,无法使用&n




被折叠的 条评论
为什么被折叠?



