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 :

[Débutant]Sélection multiple de fichiers


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Par défaut [Débutant]Sélection multiple de fichiers
    Bonjour,
    j'utilise ce petit bout de code lancer une fenêtre d'ouverture de fichiers et je sélectionne plusieurs fichiers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    options = {}
    options['multiple']         = 1
    options['filetypes']        = [('MovableSlices', '.ascii'), ('All files', '.*')]
    options['defaultextension'] = '.ascii' 
    options['initialdir']       = '\\\\11285322xp\\users\\Quentin\\BASE_B95_BV_N1\\MovableSlices_13x10x10mm'
    options['title']            = """Sélectionner les fichiers à convertir"""
    listeFichiers = dlg.askopenfilename(**options).split()
    Le problème, c'est que pour chaque fichier sélectionné, je me retrouve avec le chemin absolu inclus ce qui fait que lorsque que je sélectionne 300 fichiers, je dépasse la longueur max du type "string" et ma variable "listeFichiers" renvoyée est vide. Je n'ai pas trouvé d'option dans ".askopenfilename" permettant d'avoir d'une part le chemin (qui est commun à tous les fichiers) et d'autre part la liste des noms des fichiers.

    Quelqu'un sait comment régler ce problème ?

  2. #2
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Tu sembles stocker des chemins dans une chaîne, cela est bizzare mais bon je ne connais pas tout... Sinon pourquoi ne pas stocker les chemins dans une liste ?

    Si tu faits apparaître 300 fichiers dans la liste des fichiers sélectionnables, il y a à mon avis un problème de méthode. Par exemple, si tu veux faire apparaître que des fichiers TXT, on doit pouvoir utiliser quelque chose du type "*.txt". A voir si cela s'applique à ton cas.

    Il faut que tu en dises un peu plus sur ton problème.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Par défaut
    Non, non, j'ai vraiment 300 fichiers ascii (voire plus) à traiter !!...
    Je veux donc sélectionner les fichiers, les ouvrir un par un et les traiter un par un.
    me renvoie une chaine de caractères.
    pour utiliser une boucle du genre "for fichier in listeFichiers", j'ai besoin d'une liste, d'où le rajout de qui me sépare ma chaine en une liste dont chaque élément est constitué de la manière suivante pathname\filename.
    Quand j'exécute mon code avec 100 fichiers, pas de problème mais avec 300, "listeFichiers" est vide.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Par défaut
    Tu peux utiliser askopenfilenames, qui te retourne une liste.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Par défaut
    askopenfilenames me renvoie bien une liste mais toujours avec le même problème : chaque élément de la liste est constitué du chemin et du fichier.
    Exemple pour trois fichiers :
    [u'{//f-nefertoum-md/home1$/a032220/MyDocs/Python/RBV/Data/SC_CONDENSEUR_AMONT.stl}', u'{//f-nefertoum-md/home1$/a032220/MyDocs/Python/RBV/Data/SC_EA_BASSE_AMONT.stl}', u'{//f-nefertoum-md/home1$/a032220/MyDocs/Python/RBV/Data/SC_EA_BASSE_AVAL.stl}']

    pour 300 fichiers sélectionnés, ma liste est renvoyée vide car je dois atteindre les limites des listes et/ou des objets fichiers (en terme de dimension).

    D'où ma question : n'existe-t'il pas une fonction qui renvoie dans une variable le chemin et dans une liste (ou aure chose) les noms des fichiers ?

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Par défaut
    Je ne pense pas que ça soit possible de séparer le chemin du nom de fichier avec askopenfilenames.
    J'ai testé chez moi avec 406 fichiers et ça a fonctionné.
    Python ne limite les list à 300 (heureusement).
    J'ai fais un test chez moi: Pour les strings ça plante vers 1 millards de caractères
    Et pour une list ou chaque entrée contient 50 caractères, ça bloque autour des 300 millions.
    Donc à moins d'avoir un pc vraiment très très vieux je ne pense pas que ça vienne de là.

    Sur quelle système développes tu?

    Si tu veux récupérer tous les fichiers d'un dossier tu peux regarder du coté de askdirectory qui te renvoie le chemin du dossier, et ensuite le parcourir avec os.listdir ou glob. Tu peux éventuellement filtrer par extention si tu as besoin.

Discussions similaires

  1. [Débutant] Sélection multiple listview par le code
    Par miky77 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 13/09/2011, 14h49
  2. sélection multiple de fichiers
    Par p6ril dans le forum Windows Vista
    Réponses: 1
    Dernier message: 12/06/2007, 10h48
  3. Sélection multiple de fichiers dans TOpenDialog
    Par SOPRA-Eherve dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/05/2007, 19h02
  4. Réponses: 3
    Dernier message: 29/04/2006, 11h58
  5. [Débutant] Sélection multiples dans une Listbox
    Par eraim dans le forum Access
    Réponses: 4
    Dernier message: 15/10/2005, 03h21

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