У меня есть несколько .py файлов в нескольких папках. Я делаю os.walk
и получаю все имена файлов .py в списке файлов, и до этого я знаю, что каждый .py содержит функцию test()
, которая принимает целое число и возвращает целое число (которое несколько уникально). Я использую следующий код. Где r - целое число, файлы содержат путь к py-файлу, например:
C://users//codebase//user1//int_user_1.py
for fil in files:
spec = importlib.util.spec_from_file_location("test", fil)
foo = importlib.util.module_from_spec(spec)
spec.loader.exec_module(foo)
get_test = foo.test(r)
Но проблема в том, что строка spec.loader.exec_module(foo)
выполняет все код в файле fil
из строки 1 этого конкретного файла .py, а не только функция fil.test()
. Как я могу выполнить только функцию fil.test()
?
EDIT-1: я не могу внести какие-либо изменения в содержимое fil.py
.