Выбор файла в Python с помощью простого диалога
Я хотел бы получить путь к файлу в качестве ввода в моем консольном приложении Python.
В настоящее время я могу запросить только полный путь в качестве входа в консоль.
есть ли способ вызвать простой пользовательский интерфейс, где пользователи могут выбрать файл вместо ввода полного пути?
5 ответов
Как насчет использования tkinter?
from Tkinter import Tk
from tkinter.filedialog import askopenfilename
Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filename = askopenfilename() # show an "Open" dialog box and return the path to the selected file
print(filename)
готово!
Python 3.x версия ответа Etaoin для полноты:
from tkinter.filedialog import askopenfilename
filename = askopenfilename()
использовать tkFileDialog модуль который часть стандартной установки.
import tkFileDialog
print tkFileDialog.askopenfilename()
другой вариант для рассмотрения-Zenity:http://freecode.com/projects/zenity.
У меня была ситуация, когда я разрабатывал серверное приложение Python (без компонента GUI) и, следовательно, не хотел вводить зависимость от каких-либо наборов инструментов Python GUI, но я хотел, чтобы некоторые из моих сценариев отладки были параметризованы входными файлами и хотели визуально запрашивать у пользователя файл, если они не указали его в командной строке. Зенити идеально подходила. Добиться этого, вызовите "zenity --file-selection" с помощью модуля подпроцесса и захватите stdout. Конечно, это решение не зависит от Python.
Zenity поддерживает несколько платформ и уже установлен на наших серверах dev, поэтому он облегчил нашу отладку/разработку без введения нежелательной зависимости.