我不是很擅長解析文件,但有一些我想完成的事情。以下是包含一些require語句的.lua腳本的片段。我想用Python來解析這個.lua文件,並將'require'語句拉出來。如何用Python解析.lua文件並提取require語句?
例如,這裏有需要的語句:
require "common.acme_1"
require "common.acme_2"
require "acme_3"
require "common.core.acme_4"
從上面的例子中我會再像從所需文件分割的目錄。在示例'require'common.acme_1''中,該目錄將是常見的,並且所需的文件將是acme_1。然後,我會將.lua擴展添加到acme_1。我需要這些信息,以便我可以驗證文件系統中是否存在文件(我知道該怎麼做),然後對luac(編譯器)進行驗證,以確保它是一個有效的lua文件(我也知道該怎麼做)。
我只需要幫助,使用Python拉出這些require語句,並從文件名中分割出目錄名。
爲什麼不讓如果文件不存在'require'失敗?請記住,'require'會在各種來源中搜索匹配的模塊,其中可能包含一系列文件系統位置。模塊'acme_3'也可能來自名爲'acme_3/init.lua'的文件和標準設置。而且這忽略了編譯到可執行文件或動態加載的具有相似規則的編譯模塊的模塊問題。或者,通過'package.loaders'提供的模塊系統的可擴展性。簡而言之,重複「require」的行爲並不是微不足道的。 – RBerteig