2013-06-03 2 views
0

동적으로 가져 오려는 여러 모듈이 있습니다. 모듈의 이름은 prefix_? 어디? = [0, 1, 2, 3]. glob을 사용하여 파일/모듈의 목록을 얻습니다.glob을 사용하여 모듈을 찾은 다음 모듈을 동적으로 가져 오기

module = glob.glob(prefix_?.py) 
module.sort() 

이제 한 번에 하나의 모듈을 가져 와서 일부 코드를 실행하고 싶습니다.

for m in range(0,len(module),1): 
    from module[m] import x, y, z 

그러나 모듈은 문자열 목록이므로이 작업을 수행 할 수 없습니다. 문자열을 가져올 수있는 실제 모듈로 형식을 변환 할 수있는 방법이 있습니까?

답변

1

당신은 importlib 모듈을 사용할 수 있습니다 어쨌든 그게 전부에게 그것을 생각 :

import glob 
import importlib 
module = glob.glob(prefix_?.py) 
module.sort() 
for m in module:  #iterate over list itself, why range? 
    mod = importlib.import_module(m[:-3]) #strip off .py   
+1

내가 내 게시물 단지 거 편집이었고, 거기에 importlib 넣어 ...하지만 당신이 그것을 적용 MEH : P +1 –

+0

감사합니다. 개체를 독립 변수로 가져올 수 없으며 접두사를 mod로 사용해야했습니다. 그러나 그것은 충분히 좋다. 100 개 이상의 파일과 난수가 있었기 때문에 범위를 반복했습니다. –

1
my_module = __import__("some_file") #note you leave off the .py 
x = my_module.x 
y = my_module.y 
.... 

나는

관련 문제