Localiser un fichier de configuration

Localiser un fichier de configuration - Python - Programmation

Marsh Posté le 11-11-2004 à 17:51:10    

Bonjour,
 
J'essaie de faire un script qui tourne sous windows et linux. Il doit lire un fichier de configuration.
Il doit pouvoir être lancer depuis

Code :
  1. c:\n_importe_ou

avec une commande du type

Code :
  1. c:\repertoire_mon_script\monscript.py


 
Mon problème est le suivant : si dans mon sript je fais  

Code :
  1. fichier=open("ma_config.ini","r" )

python cherche à ouvrir

Code :
  1. c:\n_importe_ou\ma_config.ini

et non

Code :
  1. c:\repertoire_mon_script\ma_config.ini


 
Je pourais faire un chdir() pour changer le répertoire de tavail mais je n'ai pas de paramettre à lui donner (pas pratique...)
 
getcwd me retourne

Code :
  1. c:\n_importe_ou

c'est à dire le répertoire qui ne me sert a rien ...
 
Au stade où j'en suis j'envisage de construire une usine à gaz à partir d'un walk qui cherche le fichier de config jusqu'a ce qu'il l'ai trouvé (avec gestion des exeptions pour la recherche sous windows ou linux)!!!
 
Non je n'ai peur de rien ! :pt1cable:  Mais si quelqu'un à une meilleure idée, je suis preneur. :)  

Reply

Marsh Posté le 11-11-2004 à 17:51:10   

Reply

Marsh Posté le 11-11-2004 à 18:34:16    

Code :
  1. import sys
  2. print os.path.split(sys.argv[0])[0]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 11-11-2004 à 18:49:19    

Code :
  1. rep  = os.path.abspath(os.path.dirname(__file__))
  2. conf = os.path.join(rep, 'config.ini')


Reply

Marsh Posté le 11-11-2004 à 18:49:46    

Merci BEAUCOUP !!! :bounce:  :bounce:

Reply

Marsh Posté le 11-11-2004 à 19:01:48    

Masklinn a écrit :

Code :
  1. import sys
  2. print os.path.split(sys.argv[0])[0]




 
Comme je le disais juste avant merci beaucoup.
La proposition d'Ekxon me conduit à poser une quesion (par pure curiosité)
 
Je vois que tu utilise une technique par passage de paramètres, interdirait elle le passage d'autres paramètres au programme ou cela décalerait il simplement l'indice des paramètres ?

Reply

Marsh Posté le 11-11-2004 à 19:02:58    

l'élément 0 de sys.argv est le chemin complet du programme (habituellement), les autres paramètres vont dans les indices 1+


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 28-02-2005 à 11:35:26    

si non tu fait  
 
f = open("./ma_config.ini","r" )
lol

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed