NamedTemporaryFile: creation de fic de config

NamedTemporaryFile: creation de fic de config - Python - Programmation

Marsh Posté le 10-04-2011 à 21:52:20    

Bonjour,
 
Dans mon programme, j'ai une fonction buildConfFile pour créer un fichier de config. le path vers ce chemin de config sera affecté à une variable d'environnement. Cette variable d'environnement sera lu par mon programme c++.

Code :
  1. def buildConfFile():
  2.     f = tempfile.NamedTemporaryFile(mode='w+t', delete=False)
  3.     name = f.name
  4.     f.write("[settings]\ntransport= TCP\n" )
  5.     f.close()
  6.     return name


 
Puis c'est ici que j'utilise cette fonction :

Code :
  1. args = buildConfFile()
  2. os.environ["CONFIGPATH"] = args
  3. print "$CONFIGPATH=", os.environ["CONFIGPATH"]


 
la dernière ligne m'affiche bien ce qu'il faut : /tmp/tmpTP2g4i
 
 
J'utilise une API générée par swig. qui sert d'interface entre mon code c++ et mon petit programme de test en python.
 
Maintenant, dans mon code c++, je fais :

Code :
  1. const char* cslrc = getenv("CONFIGPATH" );
  2. log(DEBUG, "cslrc = %s", cslrc);


 
Et celui ci affiche bien le meme contenu qu' os.environ["CONFIGPATH"] cad : /tmp/tmpTP2g4i
 
Le problème c'est que mon programme c++ me dit qu'il n'arrive pas à ouvrir le fichier de config ( fopen(configpath, ) retourne un NULL )
 
Et quand je regarde si le fichier /tmp/tmpTP2g4i est bien là ... surprise: il n'y est pas dans /tmp/. Il a été effacé quelque part ?, ou bien il n'a jamais existé ?...
 
Est ce que quelqu'un aurait une idéee de ce qui se passe ?
remarquez le False dans ce bout de code :

Code :
  1. f = tempfile.NamedTemporaryFile(mode='w+t', delete=False)


Merci d'avance pour votre aide

Reply

Marsh Posté le 10-04-2011 à 21:52:20   

Reply

Sujets relatifs:

Leave a Replay

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