Lua 读取文件指定行数

该Lua代码定义了两个函数,printTable用于打印table内容,pf用于打印函数的所有参数。主要功能是readFileByLineIndex函数,它打开指定文件并按行读取,允许用户选择读取特定行或最后一行。当readLineIndex为-1时,显示文件的最后一行;否则,显示指定行的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试文件: TestReadFile.txt
在这里插入图片描述
Lua 代码

-- 打印 table 函数
function printTable(datas,title)
    title = title or "";
    print("printTable  length: "..#datas.." |"..title);
    for k,v in ipairs(datas) do
        print(v);
     end  
end   

--打印函数 打印所有参数
function pf(fmt,...)
	fmt = fmt or ""
	local args = table.pack(...)
	local argsNum = args.n
	if argsNum <= 0 then
		return print(fmt)
	end
	fmt = tostring(fmt)
	local argStr = ""
	for i = 1,argsNum do
		argStr = string.format("%s arg%s:%s ",argStr,i,tostring(args[i]))
	end
	print(fmt..argStr)
end

----------------------------------------------
-- 读取文件指令行 -1代表最后一行
local readFileByLineIndex = function(fileName,readLineIndex)
	fileName = fileName or "TestReadFile.txt" 
	readLineIndex = readLineIndex or 1
	local file = assert(io.open(fileName,"r"))
	local contentTable = {}
	local lineIndex = 1
	local fileLastIndex = 1
	for line in file:lines() do
		contentTable[lineIndex] = line
		lineIndex = lineIndex + 1
	end
	--printTable(contentTable,fileLastIndex)
	fileLastIndex = lineIndex - 1
	if readLineIndex > fileLastIndex then
		readLineIndex = fileLastIndex	
	end
	if readLineIndex == -1 then
		pf("最后一行:",contentTable[fileLastIndex])
	else
		pf("读取行数",readLineIndex,contentTable[readLineIndex])
	end
	file:close()
end

readFileByLineIndex(nil,-1)
readFileByLineIndex(nil,2)


结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值