2011-11-03 14 views
11

Python 3'teki tkFileDialog modülü nerede? Soru Choosing a file in Python with simple Dialog referanslar kullanarak modülü:Python3'te bir dosya seçme

from Tkinter import Tk 
from tkFileDialog import askopenfilename 

ama bu kullanarak Python 3'te (Tkinter Tkinter için ayarladıktan sonra) alır:

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 

piton 2.7.2 doc (docs.python.org)

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. 

ama (inci dan hatta bir eşleme yeni isimler olacağını hiçbir ipucu verir ve tkFileDialog aramaya ve 3.2.2 docs askopenfilename hiç bir şey döndürür: diyor e Yeni alt modülü adlarına eski isimleri)

jack yapmaz bariz çalışılıyor.

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

nasıl Python 3'te askopenfilename() eşdeğer denir?

cevap

28

in the docs belirtildiği şekilde tkinter.filedialog modelini arıyorsunuz.

from tkinter import filedialog 

Sen piton yorumlayıcı help(filedialog) çalıştırarak hangi yöntemleri/sınıfları filedialog içindedir bakabilirsiniz. Bence filedialog.LoadFileDialog, aradığınız şeydir.

8

Böyle bir şey deneyebilirsiniz:

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'' Tkinter import * dan 'yoluyla kullanılamaz. "Tkinter.filedialog import askopenfilename" den yapmalısınız. – Shule

+1

Sadece sinir bozucu pencereyi kaldırmak için root.withdraw() çağrısını ekledim. Kodum Python 3.4'te iyi çalıştı – user1741137