Динамически импортировать модуль Python из папки, а затем получить доступ к его функции

Я пытаюсь динамически импортировать файлы Python из каталога, а затем каким-то образом мне доступны эти функции, такие как список. В настоящее время я импортирую все модули из родительской папки, в которой находятся эти модули и содержит __init__.py файл со следующим

__init.py__

import os
import glob
modules = glob.glob(os.path.dirname(__file__)+"/*.py")
__all__ = [ os.path.basename(f)[:-3] for f in modules]

Это работает, чтобы импортировать все модули. Но я не уверен, как узнать, какие функции в локальной области были из импорта и как мне получить к ним доступ? Эти модули могут меняться, и я в основном хочу отправить данные в импортированные функции-загадки.

Мысли о том, как это сделать (с Python 2.7.6)?

Чтобы расширить то, что я делаю, я использую фаззер AFL для фаззинга импортированной функции. Это будет только один файл с одним определением функции для этого проекта. Вот какой-то ужасный псевдокод. Затем в module.func мне нужно выяснить, как получить доступ к любой импортированной функции.

import sys
import os
sys.path.append('..')
from binary import *

def main():
    s = sys.stdin.read()
    try:
        module.func(s)
    except:
        os._exit(0)

if __name__ == '__main__':
    import afl
    afl.start()
    main()

0 ответов

Другие вопросы по тегам