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 :

Timedelta / fichier ini


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Par défaut Timedelta / fichier ini
    Bonjour à tous,

    J'aimerai intégrer dans mon programme une alerte lorsque la mise à jour de celui-ci n'a pas été faite depuis 30 jours.
    J'ai une GUI avec une fonction qui vient inscrire la date du jour dans un fichier INI:

    Code ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [LAST_MAJ]
    last_maj = 02102022

    J'arrive à lire la date, écrire... mais pas à la comparer avec timedelta pour afficher l'alerte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    config = ConfigParser()
    config.read('as.ini')
    past = config.get("LAST_MAJ","last_maj") - timedelta(days=30)
    Qui me renvoie une erreur de Type:
    TypeError: unsupported operand type(s) for -: 'str' and 'datetime.timedelta'
    Mais la je sèche...
    Pourriez-vous me donner un coup de main svp ?

    Merci par avance !

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 600
    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 600
    Par défaut
    Bonjour,

    la date dans ton fichier est une chaîne de caractère.

    L'opérateur "soustraction" ne fonctionne pas entre une string et une date de type datetime.timedelta.

    Regarde ici si tu trouves ton bonheur : https://stackoverflow.com/questions/...time-timedelta

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 767
    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 767
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par trilo Voir le message
    Pourriez-vous me donner un coup de main svp ?
    Il te faut convertir ta string "représentant" une date issue du fichier en vraie date => voir du côté de 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]

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Par défaut
    Bonjour et merci pour les pistes !

    Voila ce que j'ai fait, c'est certainement peut-être moche mais ça fonctionne ^^:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    config = ConfigParser()
    config.read('as.ini') #.ini file
    date_select = config.get("LAST_MAJ","last_maj")
    format_date = "%d%m%Y"
    Jour = datetime.now()
    Add_30_days = datetime.strptime(date_select, format_date) + timedelta(days=30)
    print(Add_30_days.strftime(format_date)) #J'ai ajouté ce print pour visualiser la date dans la console
    Ensuite, je compare Jour avec Add_30_Days et j'exécute ou non une fenêtre ShowInfo qui propose la Mise à jour ou l'annulation de la MAJ. Si la Maj est acceptée, le fichier Ini est modifié avec la date du jour

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 767
    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 767
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par trilo Voir le message
    Voila ce que j'ai fait, c'est certainement peut-être moche
    Le seul truc qui soit moche c'est ce "30" dans ton nom de variable. Un nom de variable représente le but de la variable, pas sa valeur. Si je dois nommer une variable pour un prix, je la nommerait "prixE" par exemple ou "prixFF" ou même "prixOranges" mais certainement pas "prix30" parce que sa valeur ce n'est pas forcément "30".

    Et ta variable "Jour", elle, ne sert à rien.
    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 averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Par défaut
    Merci en effet, c'est pas très propre.
    Je vais corriger ça. Merci pour les conseils !

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 586
    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 586
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Et ta variable "Jour", elle, ne sert à rien.
    Ce qui est peut être une erreur puisque ajouter 30 jours a la date du fichier ne reflétera pas toujours la dernière date de...

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

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

Discussions similaires

  1. Sauvegarde des attributs de texte en fichier ini
    Par Raylemon dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2003, 22h28
  2. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 21h40
  3. Fichiers INI et TlistBox
    Par Philippe01 dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2003, 16h36
  4. [VB6] Api pour supprimer dans un fichier INI
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/02/2003, 09h16
  5. faire un fichier .ini
    Par florent dans le forum C++Builder
    Réponses: 14
    Dernier message: 31/05/2002, 23h06

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