教你如何用 Lua 操作文件中的数据
了解 Lua 如何处理数据的读写。 |
有些数据是临时的,存储在 RAM 中,只有在应用运行时才有意义。但有些数据是要持久的,存储在硬盘上供以后使用。当你编程时,无论是简单的脚本还是复杂的工具套件,通常都需要读取和写入文件。有时文件可能包含配置选项,而另一些时候这个文件是你的用户用你的应用创建的数据。每种语言都会以不同的方式处理这项任务,本文将演示如何使用 Lua 处理文件数据。
安装 Lua
如果你使用的是 Linux,你可以从你的发行版软件库中安装 Lua。在 macOS 上,你可以从 MacPorts 或 Homebrew 安装 Lua。在 Windows 上,你可以从 Chocolatey 安装 Lua。
安装 Lua 后,打开你最喜欢的文本编辑器并准备开始。
用 Lua 读取文件
Lua 使用 io 库进行数据输入和输出。下面的例子创建了一个名为 ingest 的函数来从文件中读取数据,然后用 :read 函数进行解析。在 Lua 中打开一个文件时,有几种模式可以启用。因为我只需要从这个文件中读取数据,所以我使用 r(代表“读”)模式:
function ingest(file)local f = io.open(file, "r")local lines = f:read("*all")f:close()return(lines) end myfile=ingest("example.txt") print(myfile)
在这段代码中,注意到变量 myfile 是为了触发 ingest 函数而创建的,因此,它接收该函数返回的任何内容。ingest 函数返回文件的行数(从一个称为 lines 的变量中0。当最后一步打印 myfile 变量的内容时,文件的行数就会出现在终端中。
如果文件 example.txt 中包含了配置选项,那么我会写一些额外的代码来解析这些数据,可能会使用另一个 Lua 库,这取决于配置是以 INI 文件还是 YAML 文件或其他格式存储。如果数据是 SVG 图形,我会写额外的代码来解析 XML,可能会使用 Lua 的 SVG 库。换句话说,你的代码读取的数据一旦加载到内存中,就可以进行操作,但是它们都需要加载 io 库。
用 Lua 将数据写入文件
无论你是要存储用户用你的应用创建的数据,还是仅仅是关于用户在应用中做了什么的元数据(例如,游戏保存或最近播放的歌曲),都有很多很好的理由来存储数据供以后使用。在 Lua 中,这是通过 io 库实现的,打开一个文件,将数据写入其中,然后关闭文件:
function exgest(file)local f = io.open(file, "a")io.output(f)io.write("hello world\n")io.close(f) end exgest("example.txt")
为了从文件中读取数据,我以 r 模式打开文件,但这次我使用 a (用于”追加“)将数据写到文件的末尾。因为我是将纯文本写入文件,所以我添加了自己的换行符(/n)。通常情况下,你并不是将原始文本写入文件,你可能会使用一个额外的库来代替写入一个特定的格式。例如,你可能会使用 INI 或 YAML 库来帮助编写配置文件,使用 XML 库来编写 XML,等等。
文件模式
在 Lua 中打开文件时,有一些保护措施和参数来定义如何处理文件。默认值是 r,允许你只读数据:
r 只读
w 如果文件不存在,覆盖或创建一个新文件。
r+ 读取和覆盖。
a 追加数据到文件中,或在文件不存在的情况下创建一个新文件。
a+ 读取数据,将数据追加到文件中,或文件不存在的话,创建一个新文件。
还有一些其他的(例如,b 代表二进制格式),但这些是最常见的。关于完整的文档,请参考 Lua.org/manual 上的优秀 Lua 文档。
Lua 和文件
和其他编程语言一样,Lua 有大量的库支持来访问文件系统来读写数据。因为 Lua 有一个一致且简单语法,所以很容易对任何格式的文件数据进行复杂的处理。试着在你的下一个软件项目中使用 Lua,或者作为 C 或 C++ 项目的 API。
via: https://opensource.com/article/21/3/lua-files
作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy
教你如何用 Lua 操作文件中的数据相关推荐
- 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限...
菜单权限是我们经常会遇到的权限,也是经常需要进行处理的权限,往往权限是通过控制菜单权限开始折腾起来的. 第一步:我的后台管理控制端,有一个叫模块配置的功能,这里集中配置,哪些模块可以用,哪些模块先锁定 ...
- python导入txt文件并绘图-Python实现读取txt文件中的数据并绘制出图形操作示例
本文实例讲述了Python实现读取txt文件中的数据并绘制出图形操作.分享给大家供大家参考,具体如下: 下面的是某一文本文件中的数据. 6.1101,17.592 5.5277,9.1302 8.51 ...
- 如何用c语言从txt文件中读取数据
用C语言从txt文件中读取数据,可以使用C标准库文件自带的文件接口函数进行操作. 一.打开文件: FILE *fopen(const char *filename, const char *mode) ...
- 用python读取txt文件中的数据并画各类图形展示_Python实现读取txt文件中的数据并绘制出图形操作示例...
本文实例讲述了Python实现读取txt文件中的数据并绘制出图形操作.分享给大家供大家参考,具体如下: 下面的是某一文本文件中的数据. 6.1101,17.592 5.5277,9.1302 8.51 ...
- python怎么读取csv的一部分数据_python批量读取csv文件 如何用python将csv文件中的数据读取成数组...
如何用python把多个csv文件数据处理后汇总到新csv文件你看这月光多温柔,小编转头还能看见你,一切从未坍塌. 可以用pandas读取数据,首先把文件方同一个文件价里,然后对当前文件价的所有内容循 ...
- matlab引用数据,excel引用数据-如何用matlab处理excel文件中的数据?
如何利用matlab根据excel表格里面的数据画图 将待导入的矩阵结数据Excel中,录入时注意行列原矩阵一一对应 录入完以后数据,为了后续步骤使用方便,命名时我们最好把它命名为我们接下来在MATL ...
- ug如何导入excel数据点_怎样将dat文件中的数据导入ug中进行操作
怎样将dat文件中的数据导入ug中进行操作 我的问题是,我用了两种方法作一件事情,第一种是直接将cpp 程序的内容粘贴到用一个回调函数中,这样算法生成的数据直接供u g函数使用.这样做的话,感觉很麻烦 ...
- python向数据库写入数据_如何用Python向Mysql中插入数据
我们使用Python经常会和Postgresql进行搭配,很少将python和mysql进行搭配.下面小编给大家分享如何用Python向Mysql中插入数据. 工具/原料 Pycharm 方法/步骤 ...
- 教你如何用 Python 来实现一个大数据搜索引擎
搜索是大数据领域里常见的需求.Splunk和ELK分别是该领域在非开源和开源领域里的领导者.本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理. 布隆过滤器 ...
最新文章
- sklearn 归一化 和 标准化
- 《百面机器学习》笔记-特征工程相关面试题
- 什么是python中子类父类_零基础入门:python中子类继承父类的__init__方法实例
- Mysql date time formate
- 最详细的 SAP ABAP Web Service 创建和消费步骤讲解
- leetcode 1833. 雪糕的最大数量
- 基于Python的接口自动化unittest测试框架和ddt数据驱动详解
- minifilter 与用户态的通信
- SQL Server2008R无法登录的解决方案(系统文件损坏)1814 18456....不看别后悔,有用请点赞...
- 性能测试——脚本录制1
- Linux内核分析——Linux内核学习总结
- Mac下Tomcat下载及使用
- 离散数学耿素云计算机,离散数学,屈婉玲,耿素云,张立昂编著_考研教材_考试点...
- oracle(除数不能为0)
- 决定了,儿童节我们用python画这个...
- 《剑指0ffer》刷题笔记 -01 二维数组中的查找
- 基于低代码平台开发的督办系统为企业管理赋能
- 桥接模式和装饰器模式
- win7-32位系统,不能运行flash,解决方法。
- Java键盘输入一个int数组
热门文章
- 哈佛大学校长: 教育是培养你辨别有人在胡说八道的能力
- 一个计算机视觉博士关于会议审稿制度的吐槽
- 3年国奖、一作9篇SCI,完美逆袭的中大博士坦言自己也曾濒临挂科
- python双下划线用法详解
- ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`meiduo`.`
- 网络空间安全Windows系统命令行学习笔记
- 【OpenCV 4开发详解】颜色模型与转换
- gluoncv 训练自己的数据集,进行目标检测
- Layui Excle/csv数据导出
- 高盛:人工智能生态报告 最全AI产业盘点