在python中从多个脚本调用函数

在python中从多个脚本调用函数,python,import,Python,Import,我正在尝试验证不同文件中具有相同名称的多个函数 所以,考虑一下我有目录目录: dir1 哪个有 s1、s2、s3、…、sn都是目录,每个目录都包含一个名为submission.py的文件。直到运行时,我才知道s1到sn是什么 在每个submission.py中,都有函数f1到fm 我想创建一个脚本,执行f1到fm,并为每个s1到sn的submission.py文件打印输出 我想我可以导入每个目录中的每个submission.py文件,但问题是每个文件都有相同的名称。此外,s1到sn直到运行时才知

我正在尝试验证不同文件中具有相同名称的多个函数

所以,考虑一下我有目录目录: dir1 哪个有 s1、s2、s3、…、sn都是目录,每个目录都包含一个名为submission.py的文件。直到运行时,我才知道s1到sn是什么

在每个submission.py中,都有函数f1到fm

我想创建一个脚本,执行f1到fm,并为每个s1到sn的submission.py文件打印输出

我想我可以导入每个目录中的每个submission.py文件,但问题是每个文件都有相同的名称。此外,s1到sn直到运行时才知道。显然,我可以使用os.listdir函数确定s1到sn

在通过os.listdir获得目录名后,我如何从两个不同的文件调用f1

这可以使用


子目录s1、s2、s3等是否都包含
\uuuu init\uuuuu.py
文件?不。子目录实际上是简介学生提交目录,它们只是提交简单的脚本。这个解决方案很漂亮。
>>> import os, imp
>>> dirs = os.listdir('.')
>>> dirs
['s1', 's2']
>>> modules = {d: imp.load_source(d, d + '/submission.py') for d in dirs}
>>> modules
{'s1': <module 's1' from 's1/submission.py'>,
 's2': <module 's2' from 's2/submission.py'>}
modules['s2'].f3()