J'ai un dossier qui contient des scripts .py et chacun contient la même variable dont j'ai besoin dans un autre script si ce script est utilisé à partir de ce dossier.Importer une même variable à partir de plusieurs bibliothèques de différents dossiers
- folder_x
- main.py
- folder_y
- script1.py
- script2.py
- script3.py
Tous les scripts ne sont donc pas utilisés en même temps.
J'ai trouvé cette solution https://stackoverflow.com/a/35524184/5708537 Et cela fonctionne bien mais je dois lister tous les scripts manuellement. Je pensais que j'automatiser cela et faire une liste des fichiers, et de la bande sur la .py fin
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]
fonctionne comme un charme.
Mais cette partie du code pense toujours que les scripts sont folder_x
variables = {}
for mod_name in module_list:
mod = import_module(mod_name)
variables[mod_name] = getattr(mod, 'var')
Alors, comment puis-je savoir que les scripts sont en folder_y et prennent cette variable de ceux?
Ou existe-t-il un meilleur moyen de lister les scripts/modules d'un autre dossier, et d'obtenir une variable de chacun d'entre eux?
Oui, je le sais, mais je veux garder les choses séparées. – Taapsa