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 :

probleme avec le mpodule datetime pour convrertir str en date avec strptime()


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2022
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Mai 2022
    Messages : 83
    Points : 37
    Points
    37
    Par défaut probleme avec le mpodule datetime pour convrertir str en date avec strptime()
    bonjour
    j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    from datetime import date, timedelta, strptime
    auj=date.today()
    date_str="2020-01-01"
     
    date_obj=strptime(date_str,"%y-%m-%d")
    mais python ne reconnait pas strptime
    pourquoi?

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Parce qu'il appartient à datetime.datetime, pas à datetime tout court.

    Pour l'appeler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from datetime import datetime
     
    datetime.strptime(date_string, "%d %B, %Y")
    Chose que tu aurais apprise aussi rapidement que moi (< 30 secondes) en tapant simplement "strptime" dans ton moteur de recherche

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2022
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Mai 2022
    Messages : 83
    Points : 37
    Points
    37
    Par défaut
    je l'avias fait
    je voyais un import comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from datetime import datetime
    je pensais que c'était équivalent à

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par marietar Voir le message
    je pensais que c'était équivalent à
    Il ne faut pas penser mais (essayer d')exécuter cette ligne à la place de l'interpréteur. "from datetime import datetime" se lit assigner à la variable datetime l'objet datetime du module datetime.... et constater qu'il y a 3 datetime différents la dedans.

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

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par marietar Voir le message
    ...je pensais que c'était équivalent à...
    Pourquoi surcharger un interpréteur déjà (relativement) peu rapide en lui demandant de traiter à l'identique deux instructions là où une seule suffit ?
    import truc va importer le contenu de "truc" dans un espace de nom dédié (espace nommé "truc"). Si "truc" contient la fonction "toto", alors on y accède via truc.toto().
    from truc import toto va importer l'élément demandé (ici la fonction "toto") dans l'espace de nom global du programme. On accède alors à la fonction via toto(). Ca peut paraître plus sympa au premier abord mais si toi tu as créé ta propre fonction "toto" il y en aura une des deux qui sautera.

    Ici le petit quiproquo c'est qu'il y a un module nommé "datetime" qui contient un objet de même nom "datetime" ; et cet objet contient la méthode "strptime()". Donc dans un cas d'import c'est datetime.datetime.strptime() et de l'autre c'est datetime.strptime()...
    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
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Pourquoi surcharger un interpréteur déjà (relativement) peu rapide en lui demandant de traiter deux instructions là où une seule suffit ?
    2 bonnes raisons:
    1. datetime.datetime.strptime, c'est l'accès à 2 dictionnaires pour récupérer l'objet méthode strptime avant de pouvoir l'exécuter. Si l'opération est répétée plusieurs milliers de fois, on aura intérêt à faire ces accès une seule fois en utilisant la variable strptime définie par l'assignation strptime = datetime.datetime.strptime
    2. Ce qui s'applique à Python s'applique aussi à l'humain qui a peut être envie de taper 8 caractères (ou moins car z = datetime.datetime.strptime marche aussi) au lieu de 26.



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

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    2 bonnes raisons:
    Tu n'as pas compris ma remarque qui répondait à son interrogation << je pensais que from datetime import datetime était équivalent à import datetime >> ; ce qui n'est évidemment pas le cas et dont je ne vois aucune bonne raison qui pourrait justifier du contraire.
    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]

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Tu n'as pas compris ma remarque qui répondait à son interrogation
    Quand on relit le premier post et qu'on essaie d'en tirer une intention, l'idée de départ est de raccourcir la longueur des chaines de caractères à taper. Mais ce qui marche pour date et timedelta ne marche pas pour strptime (avec de bonnes raisons).

    Et l'interrogation qui vient après est complètement décalée avec cette intention: c'est juste confus comme le code mais se mélanger les pinceaux quand on débute est normal.

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

Discussions similaires

  1. Probleme avec DateDiff pour les années....
    Par angelevil dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 27/03/2006, 09h19
  2. [EasyPHP] probleme avec EasyPHP et chemin pour htpasswd
    Par Death83 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 35
    Dernier message: 15/01/2006, 14h51
  3. Réponses: 1
    Dernier message: 01/04/2005, 09h39
  4. Probleme avec ODBC pour la V8.
    Par chad33 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 04/03/2005, 23h57
  5. Réponses: 3
    Dernier message: 24/02/2005, 15h48

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