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 :

python, tkFileDialog : reconnaissance du fichier à enregistrer


Sujet :

Python

  1. #1
    Membre régulier
    Femme Profil pro
    étudiant master
    Inscrit en
    Février 2014
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiant master

    Informations forums :
    Inscription : Février 2014
    Messages : 164
    Points : 100
    Points
    100
    Par défaut python, tkFileDialog : reconnaissance du fichier à enregistrer
    salut,

    dans une application Tkinter,j'ai deux boutons. le 1er pour afficher un layer (par arcpy.MakeQueryLayer) et le 2eme pour l'exporter en différents format.
    pour ce dernier j'ai utilisé tkFiledialog, la boite s'affiche mais il est enregistré avec une taille=0 octets.

    ma question: pourquoi cette boite ne reconnait pas le fichier à enregistrer?

    remarque:je travaille sous sql server, j'exécute le code sous la fenêtre python arcgis 10.1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    filename=tkFileDialog.asksaveasfilename(title="exporter",filetypes=[('jpgfiles','.jpg'),('shapefiles','.shp')
    if filename:
       return open (filename,'w')
    si j'étais pas claire n'hésiter pas

    merci

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Qu'est-ce qui fait 0 octet ?

    Le fichier créé par open(filename, 'w') ? Ça, ça ne fait qu'ouvrir ou créer le fichier, il est donc vide à ce stade.

    Plutôt que de l'ouvrir à cet endroit de ton code, retourne simplement le nom de fichier à la fonction appelante et ouvre-le dans cette fonction.

  3. #3
    Membre régulier
    Femme Profil pro
    étudiant master
    Inscrit en
    Février 2014
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiant master

    Informations forums :
    Inscription : Février 2014
    Messages : 164
    Points : 100
    Points
    100
    Par défaut
    retourne simplement le nom de fichier à la fonction appelante et ouvre-le dans cette fonction.
    je n'ai pas compris, où exactement je peux remplacer le nom du fichier.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    filename=tkFileDialog.asksaveasfilename(title="exporter",filetypes=[('jpgfiles','.jpg'),('shapefiles','.shp')
    if filename:
       return filename

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par noramokh Voir le message
    salut,

    dans une application Tkinter,j'ai deux boutons. le 1er pour afficher un layer (par arcpy.MakeQueryLayer) et le 2eme pour l'exporter en différents format.
    pour ce dernier j'ai utilisé tkFiledialog, la boite s'affiche mais il est enregistré avec une taille=0 octets.

    ma question: pourquoi cette boite ne reconnait pas le fichier à enregistrer?

    remarque:je travaille sous sql server, j'exécute le code sous la fenêtre python arcgis 10.1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    filename=tkFileDialog.asksaveasfilename(title="exporter",filetypes=[('jpgfiles','.jpg'),('shapefiles','.shp')
    if filename:
       return open (filename,'w')
    si j'étais pas claire n'hésiter pas

    merci
    Bonjour,

    Il est préférable de définir une fonction exporter() au complet pour traiter le problème :

    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
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    import Tkinter as TK
     
    from tkFileDialog import asksaveasfilename
     
    from tkMessageBox import showinfo
     
    def exporter ():
     
        filepath = asksaveasfilename(
            title="exporter",
            filetypes=[
                ('jpgfiles', '.jpg'),
                ('shapefiles', '.shp'),
            ]
        )
     
        if filepath:
     
            with open(filepath, "w") as file_out:
     
                # ceci est juste un exemple d'écriture de données
                for i in range(10):
     
                    file_out.write("Ligne {}: données exportées\n".format(i))
     
                # end for
     
            # end with
     
            # notification
            showinfo("Succès", "Fichier exporté avec succès.")
     
        # end if
     
    # end def
     
     
    root = TK.Tk()
     
    TK.Button(root, text="Exporter", command=exporter).pack(padx=10, pady=10)
     
    root.mainloop()
    Votre fichier vaudra 0 octets tant que vous ne l'aurez pas rempli avec des données.

    @+.

  6. #6
    Membre régulier
    Femme Profil pro
    étudiant master
    Inscrit en
    Février 2014
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiant master

    Informations forums :
    Inscription : Février 2014
    Messages : 164
    Points : 100
    Points
    100
    Par défaut
    Bonjour,

    j'ai appliqué ce que vous m'avez indiquer, c'est vrai ça prend un taille(300 octet) mais rien ne s'ouvre.
    j'ai essayé avec l'extension (.txt), ça s'ouvre mais voilà ce qui est affiché:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Ligne 0: données exportées
    Ligne 1: données exportées
    Ligne 2: données exportées
    Ligne 3: données exportées
    Ligne 4: données exportées
    Ligne 5: données exportées
    Ligne 6: données exportées
    Ligne 7: données exportées
    Ligne 8: données exportées
    Ligne 9: données exportées
    ça signifie quoi? mon fichier est un fichier vecteur polygone avec symbologie

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ce sont des données bidons pour illustrer le fait qu'il faut que vous remplissiez le fichier vous-même avec les données que vous sélectionnerez.

    Il ne suffit pas d'ouvrir une boîte de dialogue "enregistrer sous..." pour que l'opération d'export de données se fasse.

    Ce travail-là, c'est à vous de l'accomplir, la boîte de dialogue vous facilite simplement la récupération d'un chemin / nom de fichier valide pour procéder à l'enregistrement de données que vous fournirez à ce fichier de sortie.

    Si arcGIS vous fournit déjà un outil d'exportation de données, peut-être devriez-vous d'abord étudier cet outil pour voir comment remplir votre fichier de sortie selon le type de fichier sélectionné ?

    Et si arcGIS ne fournit pas d'outil "exporter vers..." - ce dont je doute un peu - alors vous devrez écrire la moulinette d'export vous-même.

    Prenez quand même le temps de vérifier si arcGIS ne fournirait pas par hasard un outil tout fait pour l'export de données sous différents formats de fichiers, c'est une perte de temps qui vous en fera certainement gagner par la suite.

    @+.
    Dernière modification par Invité ; 13/06/2014 à 00h12. Motif: Inutile de citer entièrement le message précédent

  8. #8
    Membre régulier
    Femme Profil pro
    étudiant master
    Inscrit en
    Février 2014
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiant master

    Informations forums :
    Inscription : Février 2014
    Messages : 164
    Points : 100
    Points
    100
    Par défaut
    je vais approfondir dans l'étude de cet outil..

    merci à tous

    à+

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/05/2007, 18h25
  2. [python][DOM] alléger un fichier XML
    Par Mireyu_c dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/06/2006, 10h52
  3. [CSV] Enregistrer sous? Apres un fichier enregistré
    Par Anakior dans le forum Langage
    Réponses: 12
    Dernier message: 19/12/2005, 13h30
  4. [Fichiers] Enregistrer/Déplacer dans un répertoire
    Par babyboy dans le forum Entrée/Sortie
    Réponses: 19
    Dernier message: 12/05/2004, 14h33
  5. [VB6] [Fichier] Enregistrer des variables de structure
    Par de.bo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/10/2002, 11h09

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