在目录中的每个Python文件中运行Python函数

时间:2016-01-14 20:12:51

标签: python import module

我正在努力寻找一种自动评分学生代码的好方法。每个学生都要提交一个名为ipython --no-banner 的文件,我将全部下载并将它们放在一个文件夹中。

现在每个学生都应该在他们的文件中有一堆像homework1_studentName.py这样的函数,我正在尝试评分。我的目标是在该目录中创建一个评分脚本,该脚本遍历每个学生的模块,导入代码,针对某些预定义的测试用例运行函数,然后打印输出。有没有办法很好地做到这一点?

只需运行评分脚本一次(下载所有代码后)就可以节省大量时间,而不必单独评分每个文件。

1 个答案:

答案 0 :(得分:0)

导入模块后,您可以使用字符串动态访问这些函数,如下所示:

import students_code

def run(function_name, module_name):
  getattr(module_name, function_name)()
  #this will call module_name.function_name()

run("question_1", students_code)

也许如果您为每个作业分配了一个配置文件,您可以自动运行。您还可以使用此dir(the_module)函数循环遍历run

要自动测试代码,请查看:https://docs.python.org/2/library/unittest.html