Lua中的文件I/O操作教程

Lua中I/O库用于读取和处理文件。有两种类型的文件操作,在Lua即隐含文件的描述符和明确的文件描述符。

对于下面的例子中,我们将使用一个示例文件test.lua,如下图所示。

代码如下:

-- sample test.lua
-- sample2 test.lua

一个简单的文件打开操作使用下面的语句。

代码如下:

file = io.open (filename [, mode])

各种文件模式列示于下表中。

 隐文件描述符

隐文件描述符使用标准输入/输出模式,或使用单输入单输出文件。使用隐式文件的描述符的一个示例如下所示。

代码如下:

-- Opens a file in read
file = io.open("test.lua", "r")

-- sets the default input file as test.lua
io.input(file)

-- prints the first line of the file
print(io.read())

-- closes the open file
io.close(file)

-- Opens a file in append mode
file = io.open("test.lua", "a")

-- sets the default output file as test.lua
io.output(file)

-- appends a word test to the last line of the file
io.write("-- End of the test.lua file")

-- closes the open file
io.close(file)

当运行程序,会得到test.lua文件的第一行输出。这里例子中得到了下面的输出。

代码如下:

-- Sample test.lua

这是声明 test.lua 文件的第一行。“-- End of the test.lua file” 将被追加到test.lua代码的最后一行

在上面的例子中可以看到隐描述与使用文件系统io.“×”方法是如何工作的。上面的例子使用io.read()没有可选参数。可选参数可以是以下任意一个。

其他常见的IO方法包括:

  • io.tmpfile():  返回读写临时文件,一旦程序退出,文件将被删除。
  • io.type(file):  返回文件,关闭文件或零根据所输入的文件。
  • io.flush(): 清除默认输出缓冲器。
  • io.lines(optional file name): 提供了一个通用的循环迭代器遍历文件并关闭在最后的情况下提供文件名和默认文件的文件被使用,在循环的末尾没有关闭。

明确的文件描述符

我们经常使用明确的文件描述符,使我们能够在同一时间处理多个文件。这些功能都相当相似的隐式文件描述符。在这里,我们使用的文件:函数名,而不是io.function_name。同样地隐文件描述符例的文件版本,以下示例如下所示。

代码如下:

-- Opens a file in read mode
file = io.open("test.lua", "r")

-- prints the first line of the file
print(file:read())

-- closes the opened file
file:close()

-- Opens a file in append mode
file = io.open("test.lua", "a")

-- appends a word test to the last line of the file
file:write("--test")

-- closes the open file
file:close()

当运行程序,会得到的隐含描述的例子是类似的输出。

代码如下:

-- Sample test.lua

文件打开和参数进行读取外部描述的所有的模式是一样的隐含文件的描述符。

其他常见的文件的方法包括:

  • file:seek(optional whence, optional offset): 参数"set", "cur" 或 "end"。设置新的文件指针从文件的开始更新的文件的位置。偏移量是零基础的这个功能。从如果第一个参数是“set”该文件的开始时所测的偏移量;从如果它是“cur” 文件中的当前位置;或从该文件的结束,如果是“end”。默认参数值是“cur”和0,因此当前的文件位置可以通过调用不带参数这个函数来获得。
  • file:flush(): 清除默认输出缓冲器。
  • io.lines(optional file name): 提供了一个通用的循环迭代器遍历文件并关闭在最后的情况下提供文件名和默认文件的文件被使用,在循环的末尾没有关闭。

一个例子,以使用寻求方法如下所示。offsets从25个位置的光标之前的文件的末尾。从文件的读出功能的打印剩余 seek 位置。

代码如下:

-- Opens a file in read
file = io.open("test.lua", "r")

file:seek("end",-25)
print(file:read("*a"))

-- closes the opened file
file:close()

会得到类似下面的一些输出。

代码如下:

sample2 test.lua
--test

可以使用各种不同的模式和参数了解 Lua文件操作能力。

(0)

相关推荐

  • Lua中遍历文件操作代码实例

    写的一个关于遍历文件的程序段  记录一下咯 --[[检查所有.txt文件 比如A.txt中第一行规定有20列,但是在X行中多输入一个Tab,则输出:A表的X行填写不规范,行末有多余填写 ]] getinfo = io.popen('dir ..//file /b /s') all = getinfo:read('*all') local filenameList = io.open("filename.txt", "wb") filenameList:write(&

  • lua文件操作详解

    I/O库提供两种不同的方式进行文件处理: io表调用方式 使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述.io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr 文件句柄直接调用方式 即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄.多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回nil IO io.close ([file]) io.flush () 相当于file:

  • Lua中的文件I/O操作教程

    Lua中I/O库用于读取和处理文件.有两种类型的文件操作,在Lua即隐含文件的描述符和明确的文件描述符. 对于下面的例子中,我们将使用一个示例文件test.lua,如下图所示. 复制代码 代码如下: -- sample test.lua -- sample2 test.lua 一个简单的文件打开操作使用下面的语句. 复制代码 代码如下: file = io.open (filename [, mode]) 各种文件模式列示于下表中.  隐文件描述符 隐文件描述符使用标准输入/输出模式,或使用单输

  • 如何在pycharm中配置pyqt5设计GUI操作教程

    目录 PyQt5简介 为什么选择PyQt5 在Pycharm中配置PyQt5 一.标题安装PyQt5模块 1.点击设置 2.安装pyqt5,pyqt5-tools,pyqt5designer 3.默认从官网上下载模块 二.配置PyQt5设计器(Qt Designer)及转换工具 1.Qt Designer 2.PyUIC 3.qrcTOpy PyQt5简介 1.什么是GUI:Graphical User Interface,图形用户界面,用于人机交互. 2.怎么设计GUI:Qt 3.什么是Qt:

  • 详解python中的文件与目录操作

    详解python中的文件与目录操作 一 获得当前路径 1.代码1 >>>import os >>>print('Current directory is ',os.getcwd()) Current directory is D:\Python36 2.代码2 如果将上面的脚本写入到文件再运行 Current directory is E:\python\work 二 获得目录的内容 Python代码 >>> os.listdir (os.getcwd

  • Python中关于文件的具体操作与介绍

    目录 文件的介绍 文件的打开与关闭 1.打开文件 2.写数据(write) 3.读数据(read) 4.读数据(readlines) 5.读数据(readline) 6.可写 ,追加(a) 二进制文件的读写 1.读数据(rb) 2.写数据(wb) 3.文件和文件夹的操作 3.1文件的重命名 3.2删除文件 文件夹的相关操作 1.创建文件夹 2.获取当前目录 文件的介绍 什么是文件?如图展示: 使用文件的目的: 保存数据存放在磁盘,把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新

  • PHP中文件读、写、删的操作(PHP中对文件和目录操作)

    一:目录操作 首先介绍的是一个从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出: 复制代码 代码如下: <?php $base_dir = "filelist/"; $fso = opendir($base_dir); echo $base_dir."<hr/>" ; while($flist=readdir($fso)){ echo $flist."<br/&

  • Python中的文件和目录操作实现代码

    本文将详细解释这些函数的使用方法.首先,我们介绍Python语言中类似于Windows系统的dir命令的列出文件功能,然后描述如何测试一个文件名对应的是一个标准文件.目录还是链接,以及提取文件大小和日期的方法.之后,我们还将介绍如何删除文件和目录,如何复制和删除文件,以及怎样将一个完整的文件路径分解成目录部分和文件名部分,最后,我们讲解目录的创建,以及如何在目录树中移动目录并处理文件. 一.显示目录内容 当我们想要列出当前目录中所有扩展名为.jpg或.gif的文件的时候,就可以使用glob模块来

  • MyBatis-Plus中最简单的查询操作教程(Lambda)

    目录 引言 Lambda 分页查询 条件查询 [1]多eq [2]or 条件构造器 自定义sql 封装我们自己的Service 资料 总结 引言 MyBatis-Plus | 最优雅最简洁地完成数据库操作 是对MyBatis-Plus的功能进行简单介绍,虽然是介绍,也让我们领略到他的优雅与强大.你是不是已经被吸引了?别着急,上一节,我们算是参观了MyBatis的风景,这一节,我将带你领略他独特的魅力. Lambda 官方表示,3.x支持Lambda表达式,那应该怎么使用呢?我们来看个例子: Qu

  • 详细讲解Python中的文件I/O操作

    本章将覆盖所有在Python中使用的基本I/O功能.有关更多函数,请参考标准Python文档. 打印到屏幕上: 产生输出最简单的方法是使用print语句,可以通过用逗号分隔的零个或多个表达式.该函数将传递到一个字符串表达式,并将结果写到标准输出,如下所示: #!/usr/bin/python print "Python is really a great language,", "isn't it?"; 这将产生结果输出在标准屏幕上,结果如下: Python is

  • Lua中if语句嵌套的使用教程

    在Lua编程内嵌if-else语句,这意味着可以使用一个 if 或 else if 在另一个语句if或else if 语句中. 语法 if语句的嵌套语法如下: 复制代码 代码如下: if( boolean_expression 1) then    --[ Executes when the boolean expression 1 is true --]    if(boolean_expression 2)    then       --[ Executes when the boolea

随机推荐