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

Tkinter Python Discussion :

Enregistrement dans un fichier txt [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Indépendant curieux
    Inscrit en
    Janvier 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Indépendant curieux

    Informations forums :
    Inscription : Janvier 2023
    Messages : 9
    Points : 2
    Points
    2
    Par défaut Enregistrement dans un fichier txt
    Bonjour à tous,

    J'aurais quelques informations a vous demander mais commençons par les présentations.

    Je m'appelle Anthony, je suis indépendant dans une branche qui n'a rien a voir avec le développement mais j'aime apprendre de nouvelle chose.

    Je suis actuellement entrain de créer un petit programme(niveau débutant), pour pouvoir réaliser des inventaires simples.

    Je m'explique, j'ai un scanner a code barre en usb et une imprimante ticket 80mm, et j'aimerais quand j'appuie sur un bouton, que la liste des références scannées soit envoyé vers l'imprimante ticket. Vous allez me dire que c'est quelque chose que je pourrais faire avec un éditeur txt mais bon, j'aime me compliquer la vie MAIS surtout apprendre de nouvelle chose comme cité ci-dessus.

    La méthode de l'éditeur de texte est viable mais j'aimerais créer quelque chose d'automatisé.

    - J'ouvre le programme
    - Je scanne et ça enregistre dans un nouveau fichier txt(dont le nom est: la date et l'heure du moment) dans un dossier spécifié lors de la programmation(cette étape me servira a garder une trace)
    - J'appuie sur un bouton qui imprime cette liste via l'imprimante ticket

    Voila mon idée...

    ATTENTION, je ne demande que l'on code a ma place si non je n'apprendrai jamais, ce que je souhaite, c'est des conseils

    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
    import tkinter as tk
     
    LAC = tk.Tk()
    LAC.geometry("400x500")
    LAC.title("Inventaire rapide")
    LAC.configure(bg="#29384b")
     
    titre_zone_texte = tk.Label(LAC, text="Références entrées:", relief="raised",width=20,font=("Times New Roman",20))
    titre_zone_texte.grid(column=0,row=0,columnspan=2)
     
    zone_saisie_reference = tk.Text(LAC, width=20, height=19, relief="raised",font=("Times New Roman", 20, "bold"))
    zone_saisie_reference.grid(column=0,row=1,rowspan=2,columnspan=2)
    zone_saisie_reference.focus_set()
     
    bouton_terminer = tk.Button(LAC,text="Imprimer",height=13,width=15,font=("Times New Roman",20))
    bouton_terminer.grid(column=2,row=1,columnspan=2,pady=20)
     
     
    LAC.mainloop()
    J'essaie de réaliser étape par étape.

    La j'aimerais travaillé sur l'étape de l'enregistrement automatisé dans un dossier spécifié d'un fichier txt nommé par la date et l'heure du moment. Je verrais plus tard pour la partie impression.

    Comme vous voyez dans le code ci-dessus, je suis un débutant, peut-être que ce que je demande n'est pas réalisable. J'aimerais avoir vos commentaires, remarques,nouvelle approche ou lien vers des tutos ou forum(je n'ai rien trouvé personnellement)

    Merci

    Amicalement

    Anthony

  2. #2
    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 Anthony41 Voir le message
    La j'aimerais travaillé sur l'étape de l'enregistrement automatisé dans un dossier spécifié d'un fichier txt nommé par la date et l'heure du moment. Je verrais plus tard pour la partie impression.
    Il faut commencer par ouvrir votre tuto préféré au chapitre sur les fichiers et/ou regarder dans la FAQ ce qui se raconte côté fichiers.

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

  3. #3
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Salut,

    Comment tu récupères les données du scanner ?

  4. #4
    Candidat au Club
    Homme Profil pro
    Indépendant curieux
    Inscrit en
    Janvier 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Indépendant curieux

    Informations forums :
    Inscription : Janvier 2023
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Il faut commencer par ouvrir votre tuto préféré au chapitre sur les fichiers et/ou regarder dans la FAQ ce qui se raconte côté fichiers.

    - W
    Merci pour votre réponse si rapide, j'ai regardé sur la FAQ. Pour les chemins je pense avoir compris. C'est surtout l'automatisation qui me pose problème. Même notre ami google se limite quand je tape mes demandes.

    J'ai bien essayé avec le ".open",".write" et le ".close", mais ca ne remplie mes demandes...

    Mes recherches forum,tuto etc ne donne pas grand chose.

    Je ne sais pas si mon explication était bien claire.
    Et je ne sais surtout si c'est réalisable:
    -qu'a l'ouverture de la page, un fichier nommé avec la date et l'heure de l'ouverture soit crée
    -qu'avec le widget text, le fichier en question soit complété au fur et a mesure
    -et que le fichier soit fermé lors de l'appui sur imprimer.

    Une autre approche serait de:
    -lancer le programme
    -scanner mes références avec le widget text (ce qui se passe jusqu’à maintenant)
    -et qu'a l'appui sur le bouton "imprimer", le programme exécute automatiquement une capture de ce qu'il y a dans le text,qu'il fasse un enregistrer sous,qu'il nomme le fichier avec la date et l'heure et qu'il l'imprime.

    Je ne sais vraiment pas si c'est réalisable...

  5. #5
    Candidat au Club
    Homme Profil pro
    Indépendant curieux
    Inscrit en
    Janvier 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Indépendant curieux

    Informations forums :
    Inscription : Janvier 2023
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Salut,

    Comment tu récupères les données du scanner ?
    Bonsoir,

    J'ai un lecteur code barre Datalogic, il remplace mon clavier, rien n'a paramétrer.

    Cdlt

  6. #6
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Citation Envoyé par Anthony41 Voir le message
    J'ai un lecteur code barre Datalogic, il remplace mon clavier, rien n'a paramétrer.
    Oui mais ça ne répond pas à ma question, comment les données sont-elles récupérées par ton PC ?

    Il y a un logiciel/driver avec le scanner ?

    Citation Envoyé par Anthony41 Voir le message

    Je m'explique, j'ai un scanner a code barre en usb et une imprimante ticket 80mm, et j'aimerais quand j'appuie sur un bouton, que la liste des références scannées soit envoyé vers l'imprimante ticket.
    Oui mais avant de l'envoyer vers l'imprimante, comment fais-tu pour récupérer cette liste des références scannées ?

    Tu veux coder une application avec Tkinter pour automatiser... Mais pour ça il faudra bien que ton application récupère cette liste des références scannées, non ?

    On peut imaginer que tu as un logiciel qui récupère sous la forme d'un fichier cette liste et alors tu fournis ce fichier à ton application...

    Ou bien ton application récupère directement cette liste via le port USB mais dans ce cas il te faudra le protocole utilisé...

  7. #7
    Candidat au Club
    Homme Profil pro
    Indépendant curieux
    Inscrit en
    Janvier 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Indépendant curieux

    Informations forums :
    Inscription : Janvier 2023
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Oui mais ça ne répond pas à ma question, comment les données sont-elles récupérées par ton PC ?

    Il y a un logiciel/driver avec le scanner ?

    Oui mais avant de l'envoyer vers l'imprimante, comment fais-tu pour récupérer cette liste des références scannées ?

    Tu veux coder une application avec Tkinter pour automatiser... Mais pour ça il faudra bien que ton application récupère cette liste des références scannées, non ?

    On peut imaginer que tu as un logiciel qui récupère sous la forme d'un fichier cette liste et alors tu fournis ce fichier à ton application...

    Ou bien ton application récupère directement cette liste via le port USB mais dans ce cas il te faudra le protocole utilisé...
    Si je ne dis pas de bêtises, le scanner(lecteur optique) de code barre est en plug and play. Mise a part avoir été detecté comme un clavier sur mon mac, je n'ai rien eu a faire.

    C'est tout l’intérêt, l'application aurait les mêmes fonction qu'un éditeur txt classique, mais avec une fonction qui permet d'enregistrer seule le fichier et de l'imprimer.

    Ce qu'il y a dans mon imagination n'est pas forcément simple à expliquer, je m'en excuse par avance!

    Cdlt

  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 Anthony41 Voir le message
    Je ne sais vraiment pas si c'est réalisable...
    C'est réalisable mais il faut savoir programmer (et avoir pris le temps d'apprendre).

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

  9. #9
    Candidat au Club
    Homme Profil pro
    Indépendant curieux
    Inscrit en
    Janvier 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Indépendant curieux

    Informations forums :
    Inscription : Janvier 2023
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    C'est réalisable mais il faut savoir programmer (et avoir pris le temps d'apprendre).

    - W
    Oui je le comprend bien, peut-être que dans quelques temps avec un peu plus d'expérience ce sera plus claire pour moi, je débute seulement en suivant des tutos, et en flanant sur des forums. Je pensais que ce serait une application facile a programmer, je vais revoir mes ambitions un peu a la baisse

    Cdlt

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 876
    Points
    1 876
    Par défaut
    Ce que vous cherchez à faire est ultra-basique. Vous n'avez pas bien cherché ou alors vous cherchez trop de choses en même temps et vous n'avez donc pas de réponses pertinentes.

    Pour créer un fichier, voici un exemple: https://www.freecodecamp.org/news/py...o-a-text-file/

    Il vous incombe juste de choisir le nom et l'emplacement. Si vous voulez que le nom du fichier contienne l'heure et la date alors vous pouvez utiliser un module comme datetime pour créer ce "timestamp" dans un format adéquat.
    Il y a effectivement la commande open qui entre en jeu, et la commande close est en réalité facultative, car vous pouvez avoir la fermeture automatique avec un context manager (utilisation de with comme dans l'exemple fourni).

    Pourquoi ne pas montrer ce que vous avez tenté, puisque vous dites que ça ne marche pas... on pourrait mieux vous guider.

    Je vous conseillerais de commencer par petits morceaux. Commencez juste par rédiger une fonction pour ce fichier, ensuite vous verrez comment l'intégrer dans votre application TK. Un conseil: une fonction qui prend deux paramètres: le nom du fichier (de préférence avec un chemin complet) et la valeur à écrire.
    Chaque bout de code peut être développé et testé indépendamment (c'est même recommandé).

    Ce que je comprends, c'est que vous voulez scanner de manière répétée et accumuler les références dans un fichier et puis imprimer le tout.
    Pour accélérer la saisie et améliorer l'ergonomie, vous pourriez faire ceci:
    • faire en sorte que la zone de texte dans votre interface TK ait toujours le focus
    • normalement vous pouvez reprogrammer votre scanner pour inclure ENTER automatiquement à la fin du code scanné Regardez dans la boîte si vous n'avez un manuel avec une série de codes barre utiles pour la configuration. Ici vous avez un exemple pour un modèle de la marque Symbol: https://www.ssetechnologies.com/ls22...enter-tab-key/ - attention: le code n'est pas forcément identique sur toutes les marques, vérifiez votre matériel et n'hésitez pas à consulter le site du fabricant
    • faire en sorte que quand on tape ENTER, la référence qui figure dans la zone de texte en enregistré
    • puis vous effacez cette zone de texte
    • et ainsi de suite

  11. #11
    Candidat au Club
    Homme Profil pro
    Indépendant curieux
    Inscrit en
    Janvier 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Indépendant curieux

    Informations forums :
    Inscription : Janvier 2023
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par binarygirl Voir le message
    Ce que vous cherchez à faire est ultra-basique. Vous n'avez pas bien cherché ou alors vous cherchez trop de choses en même temps et vous n'avez donc pas de réponses pertinentes.

    Pour créer un fichier, voici un exemple: https://www.freecodecamp.org/news/py...o-a-text-file/

    Il vous incombe juste de choisir le nom et l'emplacement. Si vous voulez que le nom du fichier contienne l'heure et la date alors vous pouvez utiliser un module comme datetime pour créer ce "timestamp" dans un format adéquat.
    Il y a effectivement la commande open qui entre en jeu, et la commande close est en réalité facultative, car vous pouvez avoir la fermeture automatique avec un context manager (utilisation de with comme dans l'exemple fourni).

    Pourquoi ne pas montrer ce que vous avez tenté, puisque vous dites que ça ne marche pas... on pourrait mieux vous guider.

    Je vous conseillerais de commencer par petits morceaux. Commencez juste par rédiger une fonction pour ce fichier, ensuite vous verrez comment l'intégrer dans votre application TK. Un conseil: une fonction qui prend deux paramètres: le nom du fichier (de préférence avec un chemin complet) et la valeur à écrire.
    Chaque bout de code peut être développé et testé indépendamment (c'est même recommandé).

    Ce que je comprends, c'est que vous voulez scanner de manière répétée et accumuler les références dans un fichier et puis imprimer le tout.
    Pour accélérer la saisie et améliorer l'ergonomie, vous pourriez faire ceci:
    • faire en sorte que la zone de texte dans votre interface TK ait toujours le focus
    • normalement vous pouvez reprogrammer votre scanner pour inclure ENTER automatiquement à la fin du code scanné Regardez dans la boîte si vous n'avez un manuel avec une série de codes barre utiles pour la configuration. Ici vous avez un exemple pour un modèle de la marque Symbol: https://www.ssetechnologies.com/ls22...enter-tab-key/ - attention: le code n'est pas forcément identique sur toutes les marques, vérifiez votre matériel et n'hésitez pas à consulter le site du fabricant
    • faire en sorte que quand on tape ENTER, la référence qui figure dans la zone de texte en enregistré
    • puis vous effacez cette zone de texte
    • et ainsi de suite
    Merci pour votre retour, j'ai réussi a trouver un tuto pour intégrer le datetime dans le nom du fichier.

    Je vois exactement de ce que vous me parler avec la configuration des lecteurs, travaillant dans le milieu pharmaceutique, j'ai du mettre a jour tout les lecteurs de mes clients pour la sérialisation de leurs médicaments.
    Mon lecteur est déjà programmé ainsi. Je scanne, il copie et valide le Enter.


    Je vous mets le code ci-dessous.

    Pour le moment, lors de l’exécution du programme, un fichier se créer dans le dossier voulu avec la date et l'heure. Je vais maintenant m'attaquer au remplissage de ce fichier txt a l'aide de mon lecteur code barre.

    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
    23
    24
    25
    import tkinter as tk
    from datetime import datetime
     
    fenetre = tk.Tk()
    fenetre.geometry("800x600")
     
    """
    Création automatique d'un fichier txt
    Avec date et heure du moment en nom de fichier
    Avec chemin spécifique pour l'enregistrement
    """
    x = datetime.now()
     
    nom_fichier = r"/Users/appia-slc/Desktop/SynologyDrive/Projet perso/Projet_python/Inventaire_simple/fichier_txt//" + x.strftime('%d%m%y%H%M%S.txt')
    with open(nom_fichier, 'w') as fichier:
        print("Fichier créé", nom_fichier)
        fichier.write("a voir comment faire")
     
     
     
    texte = tk.Text(width=20, height=19, relief="raised",font=("Times New Roman", 20, "bold"))
    texte.grid(column=0,row=0)
     
     
    fenetre.mainloop()
    Je mettrais à jour mon code au fur et à mesure

    Cdlt

    Anthony

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 876
    Points
    1 876
    Par défaut
    Faites attention au mode d'ouverture du fichier: avec w vous écrasez le contenu, ce que vous voulez est plutôt a (append)

  13. #13
    Candidat au Club
    Homme Profil pro
    Indépendant curieux
    Inscrit en
    Janvier 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Indépendant curieux

    Informations forums :
    Inscription : Janvier 2023
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par binarygirl Voir le message
    Faites attention au mode d'ouverture du fichier: avec w vous écrasez le contenu, ce que vous voulez est plutôt a (append)
    J'ai fais quelques essaies en vain pour le moment. Mais rien n'est perdu, j'aime voir les choses évoluer (Je les afficherais en bas de message)

    Pourquoi en "a"? étant donné que mon fichier est vide, pas besoin d’écrire à la suite? en "w" cela devrait revenir au même?

    Je dis peut être des bêtises et il ne faut pas se gener pour me le dire

    Bonne journée a vous!

    ps: je précise pour les lecteurs que le code ci-dessous ne fonctionne pas pour le moment.(et même pour toujours d'ailleurs ^^)

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    """import tkinter as tk
    from datetime import datetime
    from tkinter import *
     
     
    fenetre = tk.Tk()
    fenetre.geometry("800x600")
     
    x = datetime.now()
     
    # texte = tk.Text(width=20,height=19,relief="raised",font=("Times New Roman", 20, "bold"))
    # texte.grid(column=0,row=0)
     
    nom_fichier = r"/Users/appia-slc/Desktop/SynologyDrive/Projet perso/Projet_python/Inventaire_simple/fichier_txt//" + x.strftime('%d%m%y%H%M%S.txt')
    with open(nom_fichier, "a") as fichier:
        print("Fichier crée", nom_fichier)
        fichier.write(str("OK"))
     
     
    # texte = tk.Text(width=20, height=19, relief="raised",font=("Times New Roman", 20, "bold"))
    # texte.grid(column=0,row=0)
     
     
     
    fenetre.mainloop()"""
     
     
    import tkinter as tk   
    from datetime import datetime
     
    class test1(tk.Tk):
        def __init__(self,parent):
            tk.Tk.__init__(self,parent)
            self.parent = parent
            self.initialize()
            self.saisie_texte()
            self.creation_fichier()
     
     
     
        def initialize(self):
            self.grid()
     
     
        def saisie_texte(self):
            texte = tk.Text(width=20, height=19, relief="raised",font=("Times New Roman", 20, "bold"))
            texte.grid()
     
     
        def creation_fichier(self):
            x = datetime.now()
     
            nom_fichier = r"/Users/appia-slc/Desktop/SynologyDrive/Projet perso/Projet_python/Inventaire_simple/fichier_txt//" + x.strftime('%d%m%y%H%M%S.txt')
            with open(nom_fichier, 'a') as fichier:
                print("Fichier crée", nom_fichier)
                fichier.write(str(saisie_texte))
     
     
     
    if __name__ == "__main__":
        app = test1(None)
        app.title("test 1")
        app.mainloop()

  14. #14
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 876
    Points
    1 876
    Par défaut
    Citation Envoyé par Anthony41 Voir le message
    Pourquoi en "a"? étant donné que mon fichier est vide, pas besoin d’écrire à la suite? en "w" cela devrait revenir au même?
    Je peux me tromper, mais je pars du principe que vous allez créer le fichier et puis écrire dedans à répétition (dans une boucle).
    Si vous voulez que les nouvelles données s'ajoutent à la suite du contenu déjà existant, alors c'est l'option a qu'il vous faut. Avec w vous remplacez le contenu existant par autre chose.

  15. #15
    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 binarygirl Voir le message
    Je peux me tromper, mais je pars du principe que vous allez créer le fichier et puis écrire dedans à répétition (dans une boucle).
    Ce qui est discutable puisqu'on fabrique un nom horodaté (unique) pour ne pas ajouter "plus tard"...

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

  16. #16
    Candidat au Club
    Homme Profil pro
    Indépendant curieux
    Inscrit en
    Janvier 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Indépendant curieux

    Informations forums :
    Inscription : Janvier 2023
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Bonjour à tous,

    Après quelques heures de recherches et d'essais, je suis enfin arrivé a ce que je voulais faire.

    Infos sur le code ci-dessous:

    - Ouvre une fenêtre tkinter avec les widgets "Text" et "Button".
    - Le widget "Text" me sert à avoir un visuel dans ma fenêtre de ce que j'écris(ou scanne avec mon lecteur code barre dans mon cas)
    - Le widget "Button" exécute la fonction "sauve_text"
    - La fonction "sauve_text" récupère les données du widget "Text", et les enregistres dans un fichier nommé avec la date et l'heure du moment, dans le dossier spécifié.

    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
    23
    24
    25
    26
    import tkinter as tk
    from datetime import datetime
    from tkinter import *
     
     
    fenetre = tk.Tk()
     
    texte = tk.Text(fenetre,width=20,height=19,relief="raised",font=("Times New Roman", 20, "bold"))
    texte.grid(column=0,row=0)
    texte.focus_set()
     
    def sauve_text():
        x = datetime.now()
     
        nom_fichier = r"/Users/appia-slc/Desktop/SynologyDrive/Projet perso/Projet_python/Inventaire_simple/fichier_txt//" + x.strftime('%d%m%y%H%M%S.txt')
        with open(nom_fichier, "w") as fichier:
            data = texte.get('1.0', 'end')
            fichier.write(data)
     
     
    bouton_enr_imp = tk.Button(text="Enregistrer",height=10,width=0,font=("Times New Roman",15), command= sauve_text)
    bouton_enr_imp.grid(column=1,row=0,)
     
     
     
    fenetre.mainloop()
    Si j'ai bien compris le code, le "texte.get" ligne 17 va récupérer les informations du widget"Text", je n'arrive juste pas à comprendre le fonctionnement du ('1.0','end').
    Pourriez-vous m’éclairer?

    Cdlt

    Anthony

  17. #17
    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 Anthony41 Voir le message
    Si j'ai bien compris le code, le "texte.get" ligne 17 va récupérer les informations du widget"Text", je n'arrive juste pas à comprendre le fonctionnement du ('1.0','end').
    Pourriez-vous m’éclairer?
    Et si vous ouvriez une documentation car c'est là que c'est expliqué... et quelque part, vous êtes supposé avoir travaillé le widget Text le nez dedans pour voir ses possibilités avant de l'utiliser.

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

  18. #18
    Candidat au Club
    Homme Profil pro
    Indépendant curieux
    Inscrit en
    Janvier 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Indépendant curieux

    Informations forums :
    Inscription : Janvier 2023
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Et si vous ouvriez une documentation car c'est là que c'est expliqué... et quelque part, vous êtes supposé avoir travaillé le widget Text le nez dedans pour voir ses possibilités avant de l'utiliser.

    - W
    Autant pour moi, j'ai oublié une phrase dans ma question, je la reformule: je n'arrive juste pas à comprendre le fonctionnement du ('1.0','end'). Pour la position du début et la fin de toutes écritures, n'y aurait t'il pas un argument par défaut pour "Tout" au lieu d'obligatoirement mettre un début et une fin? Ou est-ce la norme?

    L’intérêt pour moi est de simplifier au maximum le code.

    Cdlt

    Anthony

  19. #19
    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 Anthony41 Voir le message
    Autant pour moi, j'ai oublié une phrase dans ma question, je la reformule: je n'arrive juste pas à comprendre le fonctionnement du ('1.0','end'). Pour la position du début et la fin de toutes écritures, n'y aurait t'il pas un argument par défaut pour "Tout" au lieu d'obligatoirement mettre un début et une fin? Ou est-ce la norme?
    La réponse est toujours dans la documentation... que vous avez ouvert pour voir ce que propose cette méthode du widget Text comme arguments.

    - 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. Réponses: 4
    Dernier message: 06/06/2011, 21h05
  2. [Débutant] récuperer données enregistrées dans un fichier TXT
    Par asous dans le forum MATLAB
    Réponses: 4
    Dernier message: 06/11/2009, 12h06
  3. l'enregistrement dans un fichier .txt
    Par seksaki dans le forum VB.NET
    Réponses: 4
    Dernier message: 02/03/2009, 18h07
  4. Réponses: 2
    Dernier message: 02/09/2008, 14h17
  5. Réponses: 1
    Dernier message: 28/11/2007, 18h54

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