Executer un fichier python dans un autre fichier python

Résolu
Bonjour,
Dans le cadre d'un projet je dois faire un programme en python qui génère un autre programme python. Cela fonctionne très bien mais je voudrais savoir si il est possible à la fin de mon programme, ajouter une ligne pour exécuter le programme qui vient d'être créer. J'ai vu à plusieurs endroit qu'on peut utiliser execfile("fichier.py") mais quand je met ça à la fin de mon code j’obtiens une erreur qui me dit que execfile n'est pas défini. Peut-être qu'il faut importer un module qui contient cette fonction ?
Merci à tous ceux qui pourrons m'aider.

1 réponse

  1. execfile() fonctionne en python2 mais a été supprimé dans la version 3.

    Soit tu execute ton code en python 2, soit il faut executer le contenu du fichier "à la main " :
    exec(open("./filename").read())
    1. Merci beaucoup ça fonctionne parfaitement ! :)
      Mais ce n'est pas gênant d'ouvrir le fichier et de ne pas le refermer après ?
    2. Oui normalement il faut le refermer.
    3. Merci beaucoup pour la commande !

      Petite question : Comment executer un programme python dans une nouvelle fenêtre ?
      Car la commande que tu as donné ouvre le programme dans la même fenêtre...

      Merci
    4. j'espère tu vas me répondre 6 ans après mdr. Du coup on fais comment pour fermer ?

    5. Modérateur
      @ano

      Bonjour,

      La manière propre de garantir qu'un fichier est bien fermé est d'utiliser with.

      Voici à quoi ça pourrait ressembler :

      filename = "prog.py"
      
      # Créer le fichier "prog.py" qui contient: print("Hello")
      with open(filename, "w") as f:
          print("print(\"Hello\")", file=f)
      
      # Exécuter le code contenu dans "prog.py"
      with open(filename, "r") as f:
          code = f.read()
          exec(code)

      Exécution :

      Hello

      Bonne chance