2017-10-18 10 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

関連する問題