Salut,

Le script suivant tourne sur XP/python2.7 il met en évidence un problème (ou un manque de documentation). Windows accepte les caractères '{' et '}'... Or askopenfilename semble s'en servir pour isoler les noms de fichiers contenant un espace, ce que l'on voit bien si on lance le script et en sélectionnant tous les fichiers. Quelqu'un aurait une doc ou une explication? Car à part les expressions régulières (et encore, pas sûr...) je ne vois pas trop comment splitter le résultat pour obtenir la liste des noms de fichiers sélectionnés.

A+

Pfeuh

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
#!/usr/bin/python
# -*- coding: latin1 -*-
 
DEFAULT_FILETYPE = [("All files","*.*")]
TITLE_ADD_FILES = "Add file(s) to project"
 
import tkFileDialog
import Tkinter
import os
 
def guiAddFilesToProject(parent=None, filetypes=DEFAULT_FILETYPE, multiple=True, title="", fpath='./'):
    newfiles = tkFileDialog.askopenfilename(parent=parent, filetypes=filetypes, multiple=multiple, title=title, initialdir=fpath)
    return newfiles
 
if __name__ == "__main__":
 
    def addFile(fname, fpath='./'):
        fullname = os.path.join(fpath, fname)
        fp = open(fullname, "wb")
        fp.write('azerty')
        fp.close()
 
    root = Tkinter.Tk()
 
    addFile(u"{très mauvais nom de fichier n°1}.txt")
    addFile(u"{très mauvais nom de fichier n°2}.txt")
 
    newfiles = guiAddFilesToProject(parent=root, title=TITLE_ADD_FILES)
    Tkinter.Label(root, text=newfiles).grid()
    root.mainloop()