从包含文件名的字符串中获取文件的所有def函数

时间:2015-05-08 18:48:47

标签: python string list function

我需要从文件夹中的.py文件中获取所有def函数。 我有这个从文件夹中获取文件名。

import Modules

path = os.path.dirname(os.path.realpath(__file__)) + "/Modules/"

modules=[]

os.chdir(path)
for file in glob.glob("*.py"):
    if file != "__init__.py":
        file = file.replace(".py", "")
        Module = "Modules." + file

这可以使所有文件名都正常并从中删除.py问题是当我尝试使用此函数获取所有函数时

for i in dir(Module):
        if i[0] != "_":
            print i

打印出这样的东西

capitalize
center
count
decode
encode

我认为是"字符串"一般来说。我打印出模块并返回返回的Modules.test,并将其放入函数

 for i in dir(Modules.test):
        if i[0] != "_":
            print i

它确实返回" test"(这是我在文件中的def函数的名称),我尝试使用this将字符串转换为原始字符串,但是它不工作。所以我只是想知道如何实现这个目标

1 个答案:

答案 0 :(得分:0)

for fpath in glob.glob("*.py"):
    if not fpath.endswith("__init__.py"): #recall glob returns full path
        with open(fpath) as f:
             print os.path.basename(fpath)
             print "  "+"\n  ".join(re.findall("def (.*):",f.read()))
也许......我想?