多语言展示
当前在线:823今日阅读:19今日分享:20

aardio怎样按行读取文本数据进行处理?

一般地,如果是一次性读取全部数据,我们都是采用string.load来加载,但是如果是要按行处理的话,这样就不方便了,虽然可以再使用正则/模式匹配来再拆分,但它需要耗费较多的内存,特别是文件比较大时,比较慢,那怎么办呢?
工具/原料
1

windows操作系统XP以上版本

2

aardio最新版

方法/步骤
1

在编程中,文本处理是无法避免的,而aardio提供了不少处理文本的方法/函数,那么应该如何做正确的选择呢?这是新手困惑的地方;而从一个硬盘文件中读取数据按行处理,应该是经常会碰到的一种情况,本篇经验介绍的是使用io内核库的 io.lines方法来完成此操作

2

它的好处是:io是内核库,由解释器提供,不需要外部支持库,可以使文件最小;2是内核速度更快;3是不需要占用大内存,特别适合机器性能不太好,或者是希望占用资源较少的情况;4是处理方法简单,自动帮我们处理了分行问题,直接返回了行内容

3

下面看基础语法,新版的io.lines去掉了自动完forin代码改成简单说明的方式,所以对于新手来说,可能需要记一下语法,其基本格式为:for line in io.lines('文件路径'){}上面代码中的返回值 line就是每一行的内容,然后我们处理line就可以了

5

代码解读:上步中,定义了str文本数据变量,主要是方便测试和比较说明,实际使用中,请换成你自己要处理的文件路径;然后定义了一个路径变量,再把数据保存到对应的路径中,然后再使用io.lines再从硬盘中读取,最后使用 console.log方法在控制台显示出每行的内容:

6

由于采用的是流式处理,不是一次性读取,所以占用的内存非常小,速度也非常快,是我们进行文本数据行处理最常用的方法!本篇经验到此结束,您学会了吗?

注意事项
3

如果您根据本经验进行操作,但过程或者结果不一致,请注意其中的细节是否一致,特别是操作系统平台和软件版本

4

如果您对本经验持有不同看法/意见,或者有更好的建议,欢迎您与我联系交流心得,也可以在本经验中写'有得'

推荐信息