2017-07-12 2 views
1

J'ai plusieurs fichiers qui doivent absolument être supprimés à la fin du programme. Je ne veux pas vraiment utiliser tempfile.TemporaryFile parce que les fichiers doivent être transmis un peu, et être utilisé pour la redirection de sortie de commande dans os.system() appels. Donc, je voudrais utiliser tempfile.mkstemp, mais ceux-ci ne sont pas supprimés automatiquement. J'ai pensé à envelopper ma méthode principale dans un essai-finalement comme ceci:Python: Comment s'assurer qu'un fichier est supprimé à la fin du programme?

if __name__ == "__main__": 
    try: 
     main() 
    finally: 
     os.remove(tempfile) 

mais cela semble plutôt discutable. Y a-t-il un meilleur moyen?

+0

Pourquoi ne pas utiliser un répertoire temporaire à la place? –

+0

sur cette route, il y a 'avec tempfile.TemporaryDirectory() comme tmpdir: ...' depuis python3.2 –

+0

Oh, je n'ai pas vu que cela supprime aussi les fichiers. C'est ce que vous obtenez pour seulement scanner la documentation :) Merci! – user8793

Répondre

0

Ma question a été répondu par les commentaires ci-dessus, mais je l'ai trouvé une autre solution propre que je vais laisser ici pour référence future: atexit