Executer un fichier python dans un autre fichier python

Résolu/Fermé
Quent - 8 janv. 2017 à 12:36
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 25 oct. 2023 à 19:02
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

Utilisateur anonyme
8 janv. 2017 à 16:40
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())
14
Merci beaucoup ça fonctionne parfaitement ! :)
Mais ce n'est pas gênant d'ouvrir le fichier et de ne pas le refermer après ?
0
Utilisateur anonyme
9 janv. 2017 à 19:46
Oui normalement il faut le refermer.
1
PythonBeginner
5 août 2019 à 20:54
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
0

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

0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812 > ano
25 oct. 2023 à 19:02

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

0