2014-02-26 53 views
0

我在嘗試這段代碼,但它給了我一個錯誤。我想遍歷這些文件並訪問一些變量。如何在python中導入動態文件列表?

我做的第一件事就是統計一個目錄中的文件數量並嘗試從那裏循環。 例如:

Sample_External_DIR_content (not in the code just showing sample content of DIR) = [myfile0, myfile1, myfile2] 
Code: 
import sys 
sys.path.insert(0, '/some_directory/some_directory/' 
num_of_files = [code to get number of files from DIR] 
for i in range(0,number_of_files): 
    from myfile + str[i] import some_variable 

有沒有類似的方法來實現這個目標?

+0

你能更具體一點你需要什麼? – Dynelight

+0

這行這裏給我一個語法錯誤#from myfile + str [i]導入一些變量。我只想訪問這些模塊中的some_variables。如果我有一到兩個文件,然後從myfile0,myfile1 import some_variable會很好,但如果我有很多,那麼我必須寫所有這些。但是,如果我可以循環或做類似於我想要做的事情,那會更好。 – splucena

+0

什麼是錯誤? – Dynelight

回答

3

可以使用__import__功能,它允許你導入一個模塊給出的字符串:

>>> django = __import__('django') 
>>> django.get_version() 
'1.5.4' 
>>> 

你的情況:

variables = [] 
for i in range(0,number_of_files): 
    variables.append(__import__(myfile + str[i]).some_variable) 

要小心,你需要有some_variable每個模塊中在這種情況下。您還可以dir檢查,看看是否在模塊中存在的變量試圖訪問它之前...

>>> dir(django) 
['VERSION', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'get_version', 'utils'] 

參見:More about Python imports.