programing

모듈 이름이 변수에있을 때 모듈 가져 오기

kingscode 2021. 1. 15. 08:25
반응형

모듈 이름이 변수에있을 때 모듈 가져 오기


중복 가능성 :
Python에서 동적 모듈 가져 오기

디렉토리에서 파일 이름을 가져 와서 파일을 가져 오는 다른 모듈로 전달하는 작은 스크립트를 작성 중입니다.

따라서 흐름은 1) 모듈 이름 가져 오기 (변수에 저장) 2)이 변수 이름을 모듈에 전달 3) 이름이 변수 이름에 저장된 모듈을 가져옵니다.

내 코드는

data_files = [x[2] for x in os.walk(os.path.dirname(sys.argv[0]))]
hello = data_files[0]
modulename = hello[0].split(".")[0]

import modulename

문제는 import 문에 도달했을 때 modulename을이 변수에 저장된 값이 아닌 실제 모듈 이름으로 읽는 것입니다. 이것이 파이썬에서 어떻게 작동하는지 잘 모르겠습니다.이 문제를 해결하는 데 도움이 될 것입니다.


내장 __import__기능을 원합니다.

new_module = __import__(modulename)

importlib가 아마도 갈 길일 것입니다. 그것에 대한 문서는 여기에 있습니다 . 그것은 일반적으로보다 선호 있어요 __import__위해 가장 사용합니다.

귀하의 경우 다음을 사용합니다.

import importlib
module = importlib.import_module(module_name, package=None)

참조 URL : https://stackoverflow.com/questions/13598035/importing-a-module-when-the-module-name-is-in-a-variable

반응형