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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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+


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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