Как открыть диалоговое окно Tkinter askopenfilename, совместимое с Python 2 и Python 3 - PullRequest
1 голос
/ 18 июня 2019

Я пытаюсь написать простой инструмент выбора файлов Python Tkinter, совместимый как с Python2.7, так и с Python3.x

Python3 Версия

from tkinter import Tk
from tkinter.filedialog import askopenfilename

root = Tk()
root.withdraw()
filename = askopenfilename(title="Select file")
root.update()
root.destroy()

Python2.7 Версия

from Tkinter import Tk
from tkFileDialog import askopenfilename

root = Tk()
root.withdraw()
filename = askopenfilename(title="Select file")
root.update()
root.destroy()

Как мне найти унифицированное решение?

1 Ответ

3 голосов
/ 18 июня 2019

Попробуйте сначала импортировать Tk и askopenfilename, как для Python 3.x. Если вы получили ImportError (нет модулей tkinter и tkinter.filedialog), попробуйте импортировать их, как для Python 2.x. (из модулей Tkinter и tkFileDialog).
Вот пример:

try:
    # Python 3.x
    from tkinter import Tk
    from tkinter.filedialog import askopenfilename
except ImportError:
    # Python 2.x
    from Tkinter import Tk
    from tkFileDialog import askopenfilename

root = Tk()
root.withdraw()
filename = askopenfilename(title="Select file")
root.update()
root.destroy()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...