私は、.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であり、それらからその変数を取ることに伝えることができますか?
他のフォルダのスクリプトやモジュールをリストし、それぞれの変数を取得するより良い方法がありますか?
はい私はそれを知っていますが、私は物事を分けたままにしたいと思います。 – Taapsa