Bonjour à tous,
J'ai un fichier main.py qui lorsqu'il est lancé me créé un objet Configuration afin de récupérer un chemin et un nom de fichier dans un fichier qui s'appel config.ini:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import sys import time from Module.config import config class LoadAll(): def __init__(self, BulkFile) : #Load Configuration file (config.ini) self.Configuration = config.ConfigIniFile("config.ini") print self.Configuration.homepath print self.Configuration.configfilename time.sleep(5) if __name__ == "__main__" : f = sys.argv[1:][0] LoadAll(f)
Le fichier config.py dans lequel j'ai une classe comme définie ci dessous et qui est appelé dans le fichier main.py est le suivant:
Dans un autre fichier Listing.py où je n'ai pas de classe mais juste une fonction, je souhaite récupérer le self.homepath :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 class ConfigIniFile(): def __init__(self, configfile): with open(configfile, "r") as self.configini : for self.lines in self.configini : self.line = self.lines.strip().split("=") if self.line[0].strip() == "[home]" and self.line[1].strip() != "": self.homepath = self.line[1].strip() #Check if path is a directory if os.path.exists(self.homepath): pass else : print "ERROR path does not exist !" if self.line[0].strip() == "[home]" and self.line[1].strip() == "": print "ERROR home path does not declared !" if self.line[0].strip() == "[ConcaFileName]" and self.line[1].strip() != "": self.configfilename = self.line[1].strip() if self.line[0].strip() == "[ConcaFileName]" and self.line[1].strip() == "": print "ERROR file name is not defined !" if __name__ == "__main__" : Config = ConfigIniFile("config.ini")
Pour l'instant je fait comme ceci et ça fonctionne :
sauf que je n'ai pas l'impression que ce soit la bonne méthode car je suis obligé de recréer un objet Configuration.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 from Module.config import config def ListingPath(): Configuration = config.ConfigIniFile("config.ini") home = Configuration.homepath
L'object Configuration que je créé dans le fichier main.py existe, je dois donc être capable de le récupérer sans devoir le recréer ?
J'ai regardé du coté des héritages, mais de ce que j'ai pu lire ce n'est vrai que pour les classes, mais pas entre classe et méthode ou inversement ? Vous me confirmez ?
Merci d'avance pour vos réponses.
Partager