web-dev-qa-db-fra.com

Choisir un fichier à Python3

Où est le module TKFileDialog dans Python 3? La question Choisir un fichier dans Python avec une boîte de dialogue simple Références Le module utilisant:

from Tkinter import Tk
from tkFileDialog import askopenfilename

mais en utilisant cela (après avoir changé tkinter à tkinter) dans Python 3 obtient:

Traceback (most recent call last):
  File "C:\Documents and Settings\me\My Documents\file.pyw", line 5, in <module>
    import tkFileDialog
ImportError: No module named tkFileDialog

Le python 2.7.2 Doc (docs.python.org) dit:

tkFileDialog
Common dialogs to allow the user to specify a file to open or save.

These have been renamed as well in Python 3.0; they were all made submodules of the new tkinter package.

mais cela ne donne aucun indice ce que les nouveaux noms seraient, et la recherche de tkfiledialog et d'askopenfilename dans les documents 3.2.2 ne renvoie rien du tout (pas même un mappage des anciens noms aux nouveaux noms de sous-module.)

Essayer l'évident ne fait pas que Jack:

from tkinter import askopenfilename, asksaveasfilename
ImportError: cannot import name askopenfilename

Comment appelez-vous l'équivalent de AskopenFileName () In Python 3?

14
Dave

Vous recherchez tkinter.filedialog Comme indiqué dans le docs .

from tkinter import filedialog

Vous pouvez regarder quelles méthodes/classes sont dans filedialog en exécutant help(filedialog) dans le python INTERPRÈTE. Je pense filedialog.LoadFileDialog Est ce que vous 'Re cherche.

33
brc

Vous pouvez essayer quelque chose comme ceci:

from  tkinter import *
root = Tk()
root.filename =  filedialog.askopenfilename(initialdir = "E:/Images",title = "choose your file",filetypes = (("jpeg files","*.jpg"),("all files","*.*")))
print (root.filename)
root.withdraw()
11
user1741137

Vous devez d'abord importer Filedialog. Vous pouvez le faire comme suit:

from  tkinter import *
from tkinter import filedialog

root = Tk()

root.filename =  filedialog.askopenfilename(initialdir = "/", title = "Select file")
print (root.filename)

root.mainloop()
2
Jaci