Recursion 计算目录中的代码行总数
我有一个包含多个子目录的目录,它们都有.lua文件。 我想计算所有文件中的代码行总数Recursion 计算目录中的代码行总数,recursion,lua,filesystems,Recursion,Lua,Filesystems,我有一个包含多个子目录的目录,它们都有.lua文件。 我想计算所有文件中的代码行总数 我有lua方面的经验,但我从未做过文件系统方面的工作,所以我对这方面还不熟悉。我知道我必须递归地迭代主文件夹,但我不熟悉io库是如何工作的,所以如果有人能向我解释一下如何做到这一点,我会非常感激。是否使用Lua是一项要求?您可以使用快速Python脚本来实现这一点 像这样: import os for i in os.listdir(os.getcwd()): if i.endswith(".lua"
我有lua方面的经验,但我从未做过文件系统方面的工作,所以我对这方面还不熟悉。我知道我必须递归地迭代主文件夹,但我不熟悉io库是如何工作的,所以如果有人能向我解释一下如何做到这一点,我会非常感激。是否使用Lua是一项要求?您可以使用快速Python脚本来实现这一点 像这样:
import os
for i in os.listdir(os.getcwd()):
if i.endswith(".lua"):
with open(i) as f:
num_lines = sum(1 for _ in f)
print i + str(num_lines)
# Do whatever else you want to do with the number of lines
continue
else:
continue
这将打印当前工作目录中每个文件的行数
来自和的部分代码。好的,我使用了LuaFileSystem,它似乎工作正常。 感谢Rob Rose提供了python示例,尽管我没有让它正常工作
require("lfs")
local numlines = 0
function attrdir (path)
for file in lfs.dir(path) do
if file ~= "." and file ~= ".." then
local f = path..'/'..file
local attr = lfs.attributes (f)
assert(type(attr) == "table")
if attr.mode == "directory" then
attrdir(f)
else
--print(f)
--f = io.open(f, "r")
for line in io.lines(f) do
numlines = numlines + 1
end
end
end
end
end
function main()
attrdir(".")
print("total lines in working directory: "..numlines)
end
local s,e = pcall(main)
if not s then
print(e)
end
io.read()
不,这不是要求,它只是我安装的唯一一种编程语言。我相信教程中有一节是关于设置Python环境的。请注意,我提供的代码是针对Python2而不是Python3的。在Linux上,您可以执行
find-名称“*.lua”-print0 | xargs-0 wc-l
。(如果您使用另一个操作系统,我肯定会有关于设置Linux的教程。)您的代码似乎导致:NameError:name“OS”未定义哎哟。我忘了说你必须进口东西。只需将导入操作系统放在程序的开头。