Мне было интересно, есть ли что-то похожее на Java JFileChooser для Python?
JFileChooser - это графический интерфейс для выбора файла.
Желательно то, что уже есть с Python. Может быть, с Ткинтером.




Это будет зависеть от вашего набора инструментов для работы с окнами. wxWidgets предоставляет wxFileDialog.
Спасибо, Хэнк, я разберусь. :)
wxPython (www.wxpython.org) предоставляет класс wx.FileDialog, который предоставит вам собственный диалог выбора файла на любой из поддерживаемых платформ (Mac, Linux или Windows).
Спасибо, WAyne. Думаю, Хэнк опередил тебя;)
Может быть, вы хотели бы взглянуть на Jython.
Самый простой способ, который я когда-либо находил (используя PyGTK и киви):
from kiwi.ui.dialogs import open as open_dialog
chosen_path = open_dialog('Select a file', folder='/start/folder')
if chosen_path is not None:
# do something ...
Для чего-то, что не требует wxPython и придерживается стандартных библиотек Python, вы можете использовать метод tkFileDialog.askopenfilename ():
#!/usr/bin/python
from Tkinter import *
from tkFileDialog import askopenfilename
root = Tk()
root.withdraw()
print askopenfilename()
Возможно, это сработало для python2. Но для python3 вам нужен ответ А. Л. Стрина.
Для python 3 вам нужен tkinter.filedialog и все, что с ним связано. Вот короткая программа, которая открывается и затем распечатывает файл TXT, выбранный пользователем через askopenfilename:
from tkinter import *
from tkinter.filedialog import askopenfilename
root = Tk()
root.withdraw()
root.update()
pathString = askopenfilename(filetypes=[("Text files","*.txt")])
if pathString:
openFile = open(pathString, 'r')
fileString = openFile.read()
print(fileString)
root.destroy()
Вывод - это то, что находится в выбранном файле.
Для python3 вам необходимо проверить определение pathString (не для пустой строки): if pathString: (см. Этот ответ stackoverflow.com/a/47067803/1908115)
Быстрое объяснение того, что такое JFileChooser, может помочь получить более точные ответы.