读取另一个python文件里面的函数有关问题
读取另一个python文件里面的函数问题
求大神 如果要读取另外一个python文件 然后检索里面的函数名称以后以列表的形式的输出怎么办到?
我的代码是这样的...
def function_names(parameters):
retrieve_files = open(str(parameters))
all_code = retrieve_files.read()
function_name = all_code.startswith("def ")
function_list = function_name.readlines()
return function_list
引用函数传入路径以后运行错误
因为*.startswith 出来的是布尔林类型
但是除了用这个检索字符以外 我不知道怎么办了
我的想法是检索def 和一个空格以后的字符就是函数名了
但是在下一个左括号前停止 就可以找到我的函数名了
我不会啊...求救
另外老师要求的输入类型是io.TestIOWrapper 输出 类型是列表
怎么破?..谢谢
------解决思路----------------------
上面的正则表达式少了一个+号
------解决思路----------------------
真不好意思,还忘了一点
求大神 如果要读取另外一个python文件 然后检索里面的函数名称以后以列表的形式的输出怎么办到?
我的代码是这样的...
def function_names(parameters):
retrieve_files = open(str(parameters))
all_code = retrieve_files.read()
function_name = all_code.startswith("def ")
function_list = function_name.readlines()
return function_list
引用函数传入路径以后运行错误
因为*.startswith 出来的是布尔林类型
但是除了用这个检索字符以外 我不知道怎么办了
我的想法是检索def 和一个空格以后的字符就是函数名了
但是在下一个左括号前停止 就可以找到我的函数名了
我不会啊...求救
另外老师要求的输入类型是io.TestIOWrapper 输出 类型是列表
怎么破?..谢谢
------解决思路----------------------
import re
re_def = '^def\s+([_a-zA-Z][_A-Za-z0-9]*)\s?\('
def function_names(parameters):
ret = []
with open(parameters, 'rt') as py:
for line in py.readlines():
mo = re_def.match(line.rstrip())
if mo:
ret.append(mo.groups()[0])
return ret
上面的正则表达式少了一个+号
------解决思路----------------------
真不好意思,还忘了一点
import re
re_def = re.compile('^def\s+([_a-zA-Z][_A-Za-z0-9]*)\s?\(')
def function_names(parameters):
ret = []
with open(parameters, 'rt') as py:
for line in py.readlines():
mo = re_def.match(line.rstrip())
if mo:
ret.append(mo.groups()[0])
return ret