TkFileDialog.askopenfilename en mode multiple
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:
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() |