Выбор файла в Python с помощью простого диалога



Я хотел бы получить путь к файлу в качестве входных данных в моем консольном приложении Python.



В настоящее время я могу только попросить полный путь в качестве входного сигнала в консоли.



есть ли способ запустить простой пользовательский интерфейс, где пользователи могут выбрать файл вместо ввода полного пути?

749   5  

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 версия ответа Этаоина для полноты:

from tkinter.filedialog import askopenfilename
filename = askopenfilename()

С EasyGui (документацию pydoc и epydoc для версии 0.96):

import easygui
print easygui.fileopenbox()

установка:

pip install http://easygui.sourceforge.net/download/version0.96/easygui_v0.96.zip

демо:

import easygui
easygui.egdemo()

использовать tkFileDialog модуль, который является частью стандартной установки.

import tkFileDialog

print tkFileDialog.askopenfilename()

еще один вариант для рассмотрения-это Зенит: http://freecode.com/projects/zenity.

У меня была ситуация, когда я разрабатывал серверное приложение Python (без компонента GUI) и, следовательно, не хотел вводить зависимость от каких-либо наборов инструментов Python GUI, но я хотел, чтобы некоторые из моих сценариев отладки были параметризованы входными файлами и хотели визуально запрашивать пользователя для файла, если они не указали его в командной строке. Зенит был идеально подходит. Добиться этого, вызовите "zenity --file-selection" с помощью модуля подпроцесса и захватите stdout. Конечно, это решение не зависит от Python.

Zenity поддерживает несколько платформ и уже установлен на наших серверах dev, поэтому он облегчил нашу отладку/разработку без введения нежелательной зависимости.

Comments

    Ничего не найдено.