2017-10-18 108 views
1

我有一個包含.py腳本的文件夾,每個文件夾都包含一個我在其他腳本中需要的變量,如果從該文件夾使用某個腳本。從不同文件夾的多個庫中導入一個相同的變量

  • folder_x
    • main.py
    • folder_y
      • script1.py
      • script2.py
      • script3.py

所以所有的腳本都不是在同一時間只使用其中的一個。

我發現這個解決方案https://stackoverflow.com/a/35524184/5708537 它運作良好,但我必須手動列出所有腳本。 我認爲我這個自動化,使文件的列表,並剝離下來結束的.py:

path = '/home/folder_x/folder_y' 
files = os.listdir(path) 
module_list = [i for i in files if i.endswith('.py')] 
module_list = [os.path.splitext(x)[0] for x in module_list] 

就像一個魅力。

但是這部分代碼仍然認爲,腳本在folder_x

variables = {} 
for mod_name in module_list: 
mod = import_module(mod_name) 
variables[mod_name] = getattr(mod, 'var') 

所以,我怎麼能告訴該腳本在folder_y並採取可變那些?

或者是否有更好的方法來列出其他文件夾中的腳本/模塊,並從每個文件夾中獲取變量?

回答

0

如果您想導入自己的.py,只需將它們放在與調用它的程序相同的目錄中即可。例如:

from mymodule import *

這使您可以運行所有功能和方法,在該文件中。

+0

是的,我知道,但我想保持分開。 – Taapsa

相關問題