2011-11-03 14 views
11

Gdzie jest moduł tkFileDialog w Pythonie 3? Kwestia Choosing a file in Python with simple Dialog odniesienia modułu przy użyciu:Wybór pliku w Python3

from Tkinter import Tk 
from tkFileDialog import askopenfilename 

ale używając, że (po zmianie Tkinter do tkinter) w Pythonie 3 dostaje:

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 

Python 2.7.2 doc (docs.python.org) mówi:

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. 

ale to nie daje wskazówkę co nowe nazwy byłyby i szukając tkFileDialog i askopenfilename w 3.2.2 Dokumenty zwraca nic w ogóle (nawet mapowanie z th e stare nazwy do nowych nazw modułem)

Próbując oczywisty nie zrobić jack.

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

Jak zadzwonić równowartość askopenfilename() w Pythonie 3?

Odpowiedz

28

Szukacie tkinter.filedialog jak zauważył in the docs.

from tkinter import filedialog 

Możesz zajrzeć na jakie metody/klasy są w filedialog uruchamiając help(filedialog) w interpreter Pythona. Myślę filedialog.LoadFileDialog jest to, czego szukasz.

8

Można spróbować czegoś takiego:

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() 
+1

'filedialog' nie jest dostępne poprzez' z Tkinter import * '. Trzeba zrobić takie jak 'From tkinter.filedialog askopenfilename' importu. – Shule

+1

Właśnie dodał root.withdraw() wezwanie, aby usunąć brzydkie okno. Mój kod pracował dobrze w Pythonie 3.4 – user1741137