[python] 간단한 대화 상자로 Python에서 파일 선택

Python 콘솔 응용 프로그램에서 파일 경로를 입력으로 얻고 싶습니다.

현재 콘솔에서 입력으로 전체 경로 만 요청할 수 있습니다.

사용자가 전체 경로를 입력하는 대신 파일을 선택할 수있는 간단한 사용자 인터페이스를 트리거하는 방법이 있습니까?



답변

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)

끝난!


답변

완전성에 대한 Etaoin의 답변의 Python 3.x 버전 :

from tkinter.filedialog import askopenfilename
filename = askopenfilename()


답변

부착 에는 EasyGUI (문서로 생성 하여 pydocepydoc 버전 0.96의 경우) :

import easygui
print(easygui.fileopenbox())

설치하기 위해서:

pip install easygui

데모:

import easygui
easygui.egdemo()


답변

Python 2에서는 tkFileDialog모듈을 사용합니다 .

import tkFileDialog

tkFileDialog.askopenfilename()

Python 3에서는 tkinter.filedialog모듈을 사용합니다 .

import tkinter.filedialog

tkinter.filedialog.askopenfilename()


답변

고려해야 할 또 다른 옵션은 Zenity입니다 : http://freecode.com/projects/zenity .

Python 서버 애플리케이션 (GUI 구성 요소 없음)을 개발 중이 어서 Python GUI 툴킷에 대한 종속성을 도입하고 싶지 않았지만 디버그 스크립트 중 일부를 입력 파일로 매개 변수화하고 싶었습니다. 사용자가 명령 줄에 파일을 지정하지 않은 경우 시각적으로 사용자에게 파일을 요청합니다. Zenity는 완벽하게 맞았습니다. 이를 위해 subprocess 모듈을 사용하여 “zenity –file-selection”을 호출하고 stdout을 캡처합니다. 물론이 솔루션은 Python에만 국한되지 않습니다.

Zenity는 여러 플랫폼을 지원하며 이미 개발 서버에 설치되어 원치 않는 종속성없이 디버깅 / 개발을 용이하게했습니다.


답변

나중에 중복 질문에 대한이 답변에서 제안한 것처럼 tkinter보다 wxPython으로 훨씬 더 나은 결과를 얻었습니다.

https://stackoverflow.com/a/9319832

wxPython 버전은 xfce 데스크톱이있는 OpenSUSE Tumbleweed 설치의 다른 응용 프로그램에서 열린 파일 대화 상자와 동일한 파일 대화 상자를 생성 한 반면 tkinter는 익숙하지 않은 횡 스크롤 인터페이스로 비좁고 읽기 어려운 것을 생성했습니다.


답변