【发布时间】:2019-11-19 13:15:59
【问题描述】:
我有以下问题:
假设我有一个目录,在这个目录中是另一个目录,其中包含一个具有以下功能的 hello_world.py 文件:
def print_hello_world():
print("Hello World")
层次结构:folder1/folder2/hello_world.py
现在我在文件夹 1 中有一个 print_function_names.py 文件,用于检查文件夹 2 是否存在,然后我遍历文件夹 2 中的 .py 文件并打印函数名称。在这个测试场景中,输出是:
print_hello_world
我的第一种方法是打开文件并使用正则表达式查找函数名称。
folder1/print_function_names.py
with open("folder1/folder2/hello_world.py", "r") as file:
for line in file.readlines():
if re.match("def (.*)\(", line):
function_name = re.match("def (.*)\(", line)
print(function_name.group(1))
有没有更 Pythonic 或者更简单的方法?
【问题讨论】:
-
让 Python 自己做解析。将目录作为包导入并递归迭代其内容,或使用
ast模块
标签: python python-3.x