module - Lua 全局变量包含当前文件的路径?

标签 module lua filesystems filenames interpreter

Lua 中是否有一个全局变量包含当前正在解释的文件的路径?类似于 Python 的 __file__多变的?

我跑了快 for k, v in pairs(_G) do print(k) end在解释器中,看看我是否能找到任何东西。只列出了以下变量?
string xpcall package tostring print os unpack require getfenv setmetatable next assert tonumber io rawequal collectgarbage getmetatable module rawset math debug pcall table newproxy type coroutine _G select gcinfo pairs rawget loadstring ipairs _VERSION dofile setfenv load error loadfile
关于如何获取当前正在执行的文件路径的任何建议?

最佳答案

调试库有一个 getinfo您可以调用的方法,它可以返回函数的源文件等。

local info = debug.getinfo(1,'S');
print(info.source);

这将在调用堆栈的第一级返回函数的源文件的名称(它将以@ 符号开头,表示它是一个文件名)。路过 1您正在询问有关当前功能的信息。如果您通过 0它会返回 =[C]因为它会返回有关 getinfo 的信息功能本身。

有关更多详细信息,请查看 Programming in Lua Lua官方网站上的引用:
http://www.lua.org/pil/23.1.html

关于module - Lua 全局变量包含当前文件的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21416798/

相关文章:

reference - 如何将对表的引用添加到 userdata 对象?

lua - 有没有更快的方法在lua中找到素数?

python - 在Python中查找空文件

docker - 从主机挂载/卸载可移动驱动器后,容器绑定(bind)挂载目录中的内容保持不变

linux - 如何将参数从 makefile 传递到 Linux 内核模块源代码

node.js - 如何正确组织 Node.js 模块

c - Lua 库——从 C 返回一个 lua 数组

database - 大型天体物理模拟数据的数据存储

javascript - YouTube iFrame API 'YT is undefined'

交互式 shell 中的 Python 模块导入