IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Fichier/Dossier Temporaire VS Fichier/Dossier Crée puis supprimer?


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut Fichier/Dossier Temporaire VS Fichier/Dossier Crée puis supprimer?
    Bonjour,

    j'ai juste une question simple qui m'ennuie un peu.

    Entre créer des "fichiers/dossiers temporaires" et "créer puis supprimer fichier/dossier". Quels est la solutions la plus optimal? En théorie, je ne pense pas que le gain de perf soit visible même sur un gros programme. Mais niveau praticité, sécurité, etc ... Quels méthodes utilisez-vous, le pourquoi l'une plutôt que l'autre?

    Cordialement

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Salut,

    çà ne change rien côté performances: on crée quand même un fichier/répertoire/... et on utilise le même disque.

    Ce qui change c'est côté utilisation: un fichier temporaire peut être créé avec un nom "unique" qui ne sera pas en collision avec d'autres fichiers et à des endroits "définis" où on pourra faire le ménage sans trop se soucier du contenu du fichier.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 925
    Billets dans le blog
    8
    Par défaut
    Bonjour,
    Citation Envoyé par wiztricks Voir le message
    Salut,

    çà ne change rien côté performances: on crée quand même un fichier/répertoire/... et on utilise le même disque.

    - W
    J'ignore pour windows mais sur gnu/linux, on utilise le répertoire /tmp pour enregistrer des fichiers temporaires. Celui ci etant monté sur la ram, son utilisation devrait être plus rapide que d'utiliser le disque. (??)

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Salut,

    Citation Envoyé par Hominidé Voir le message
    Celui ci etant monté sur la ram, son utilisation devrait être plus rapide que d'utiliser le disque. (??)
    Sur le papier, oui... mais Python teste la sécurité des différents répertoires où il va créer les fichiers temporaires. On peut atérir dans le répertoire utilisateur.

    Mais techniquement, ce n'est pas pour la vitesse qu'on le fait (çà dépend de l'environnement), mais pour créer un objet "persistant" qui a la durée de vie du programme.

    Je relance, je me retrouve avec un fichier "neuf" sans devoir gérer l'état de l'ancien (et un tiroir à vider lorsqu'on a des soucis d'espace disque).

    Les fichiers temporaires ont été créés à une époque où nous n'avions pas la chance d'avoir autant de mémoire physique et d'espace disque qu'aujourd'hui... mais le tiroir à vider (flinguer les fichiers temporaires sans se poser de questions) reste (parfois) utile.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 870
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Hominidé Voir le message
    mais sur gnu/linux, on utilise le répertoire /tmp pour enregistrer des fichiers temporaires.
    Cela n'a rien d'obligatoire. Les users ont aussi à leur disposition un dossier "~/tmp" pour ça s'ils le souhaitent.

    Citation Envoyé par Hominidé Voir le message
    Celui ci etant monté sur la ram...
    C'est pas par défaut (faut rajouter explicitement la ligne tmpfs /tmp tmpfs size=<size_de_son_choix>M 0 0 dans le fichier /etc/fstab).

    Citation Envoyé par Hominidé Voir le message
    J'ignore pour windows
    Tu as une variable "TEMP" qui contient un chemin vers un dossier dédié à ça (par défaut "C:\Users\...(nom du user)...\AppData\Local\Temp")
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 925
    Billets dans le blog
    8
    Par défaut
    Merci pour ces précisions ...

  7. #7
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Juste quelques compléments.

    - Le module "tempfile" permet de créer des fichiers temporaires et de les supprimer automatiquement à leur clôture. Si en plus on utilise le mode contextuel avec "with", ça se fait tout seul à la fin du bloc de codes démarré par "with". Mais dans certains cas, on voudrait pouvoir non seulement travailler avec des fichiers temporaires, mais aussi pouvoir les consulter plus tard dans le programme, voire après l'arrêt du programme. C'est possible aussi, mais ce ne sont pas les mêmes méthodes à utiliser, et il faudra faire les suppressions en fin de programme ou après, à la main . Voir:
    https://docs.python.org/fr/3/library...odule-tempfile

    - il existe un algorithme de recherche du répertoire temporaire à utiliser:
    https://docs.python.org/fr/3/library...ile.gettempdir
    Cela peut réserver des surprises. Ainsi, j'ai découvert sous Windows qu'un de mes programmes installés avait détourné le répertoire de TEMPDIR (variable d'environnement) pour son propre usage: C:\Users\Public\Documents\xxxxxxx\Temp. Comme c'est un endroit où n'importe quel utilisateur peut écrire, ce n'est pas un problème, mais si on veut consulter après coup un fichier temporaire, on peut le chercher un moment... Il suffit donc de vérifier (toujours sous Windows) les principales variables d'environnement concernées pour éviter les surprises:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import os
     
    env = os.environ
    print(env.get("TMPDIR", "TMPDIR absent"))
    print(env.get("TEMP", "TEMP absent"))
    print(env.get("TMP", "TMP absent"))
    Si on veut utiliser un répertoire temporaire particulier, on peut forcer avec, par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tempfile.tempdir = r"C:\Users\Utilisateur\AppData\Local\Temp"

Discussions similaires

  1. [XL-2003] macro creer et renommer un dossier et ouvrir un fichier du dossier crée
    Par diabolo162 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/07/2015, 01h14
  2. Réponses: 2
    Dernier message: 16/12/2006, 13h34
  3. Réponses: 2
    Dernier message: 20/11/2006, 19h37
  4. Réponses: 12
    Dernier message: 01/11/2006, 17h52
  5. Changer le nom par défaut du fichier excel crée
    Par pilou0013 dans le forum Access
    Réponses: 2
    Dernier message: 18/06/2006, 19h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo