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 :

ajouter un numéro au nom du fichier


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut ajouter un numéro au nom du fichier
    Bonjour
    j'ai une fonction qui crée un fichier.xml
    j'ai declaré une variable=random.random()
    je veux ajouter cette variable au nom du fichier crée
    l'objectif c'est d'avoir des fichiers : fichier1, fichier2 fichier3 etc
    le nom de fichier je le donne en paramettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ecrireDansFichier("Fichiers.xml", "helo")

  2. #2
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    Je te déconseille random.random Sois sûre que si tu laisses une possibilité qu'un bug se produise (ici, en l'occurrence, deux fichiers avec le même nom, l'un va forcément écraser l'autre) il va se produire. Sans parler de la possibilité de retrouver un fichier dont le nom a été créé par hasard... La méthode que je te propose n'est pas idéale non plus, car si on arrête et relance le programme, la numérotation recommence à un. Tu peux réfléchir à une méthode plus aboutie.

    A+

    Pfeuh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class UNIQUE():
        def __init__(self):
            self.sernum = 0
     
        def get(self):
            self.sernum += 1
            return self.sernum
     
    def  getNewFilename(prefix, sufix, fnum):
        return "%s%04u.%s"%(prefix, fnum.get(), sufix)
     
    fnumgenerator = UNIQUE()
    for index in range (20):
        print (getNewFilename("fichier_", "xml", fnumgenerator))

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    merci
    je pense que si je me base sur la date ( heure , minute , second ) et le random en même temps je risque rien ( datetime )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import datetime
    q=datetime.datetime(15,1,1,1)
    print q.today()
    qu'en pense tu ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    le nom de fichier s'affiche :
    (datetime.datetime(2011, 4, 11, 15, 13, 51, 484000), ('_fichier_', 15346, '.xml'))
    et ce n'est pas no plus en extension .xml

  5. #5
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Citation Envoyé par nancy maman Voir le message
    je pense que si je me base sur la date ( heure , minute , second ) et le random en même temps je risque rien
    Il y a quand même quelque chose qui m'échappe. Si tu sauves tes fichiers avec des noms générés aléatoirement, tu ne les reconnaitras plus. Et si tu me dis que tu n'as plus besoin de ces fichiers, alors pourquoi les as tu sauvés? Pour l'utilisation de random dans ton cas, je ne peux pas être d'accord, mais fais bien sûr comme tu veux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import time
    class UNIQUE():
        def __init__(self):
            self.sernum = 0
     
        def get(self):
            self.sernum += 1
            return self.sernum
     
    def  getNewFilename(prefix, sufix, fnum):
        now = time.gmtime()
        timestr = "%04u_%02u_%02u_%02u_%02u_%02u"%(now.tm_year,
            now.tm_mon, 
            now.tm_mday, 
            now.tm_hour, 
            now.tm_min, 
            now.tm_sec)
        return "%s%s_%04u.%s"%(prefix, timestr, fnum.get(), sufix)
     
    fnumgenerator = UNIQUE()
    for index in range (3):
        print (getNewFilename("fichier_", "xml", fnumgenerator))

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    je les sauvegarde car j'aurai besoin de ca pour identifier mes fichiers
    imagine toi si 1000 utilisateur créent des fichiers en même temps
    donc j'aurai besoin de savoir qui a crée quoi

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    merci à toi pour ton exemple
    ca marche. je vais l'adapter à mon travail

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    pour moi l'utilisation de random c'est pour rendre le nom de fichier unique
    si on a 2 utilisateurs qui vont créer en même seconde deux fichier , comment peut on différencier ce deux fichier d'après toi ?

  9. #9
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Citation Envoyé par nancy maman Voir le message
    si on a 2 utilisateurs qui vont créer en même seconde deux fichier , comment peut on différencier ce deux fichier d'après toi ?
    En incluant le nom du compte de l'utilisateur dans le nom de fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import time
    import os
     
    def  getNewFilename(prefix, sufix):
        now = time.gmtime()
        timestr = "%04u_%02u_%02u_%02u_%02u_%02u"%(now.tm_year,
            now.tm_mon, 
            now.tm_mday, 
            now.tm_hour, 
            now.tm_min, 
            now.tm_sec)
        return "%s%s_%s.%s"%(prefix, timestr, os.getenv('USERNAME'), sufix)
     
    for index in range (3):
        print (getNewFilename("fichier_", "xml"))

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    c'est une bonne idée mais le compte utilisateur n'existe pas
    c'est un logiciel , et tout le monde peut y accéder sans avoir besoin de créer un compte

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. AJouter un paramètre à un nom de fichier uploadé.
    Par cdossert dans le forum Langage
    Réponses: 8
    Dernier message: 09/02/2014, 15h29
  2. numéro dans nom de fichier
    Par koKoTis dans le forum Langage
    Réponses: 7
    Dernier message: 14/10/2008, 11h00
  3. [log4j] Ajouter la date au nom du fichier
    Par n@n¤u dans le forum Logging
    Réponses: 5
    Dernier message: 09/01/2008, 22h29
  4. Ajouter au noms des fichiers le nom du rep
    Par nestam dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 28/08/2007, 18h42
  5. Modifer un fichier en ajoutant le numéro de chaque ligne
    Par bellout dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 15/06/2006, 13h43

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