1. ホーム
  2. python

[解決済み] Pythonで素早く簡単にファイルダイアログ?

2022-08-19 23:21:45

質問

ファイルを解析し、その内容をデータベースにロードする簡単なスクリプトがあります。UI は必要ありませんが、現在、解析するファイルについてユーザーにプロンプトを表示しています。 raw_input を使用していますが、特にユーザーがパスをコピー/貼り付けることができないため、最も不親切な方法です。 ファイル選択ダイアログを表示し、ユーザーがファイルを選択すると、データベースに読み込まれるような、迅速で簡単な方法を希望しています。 (私の使用例では、たまたま間違ったファイルを選択した場合、解析に失敗し、データベースに読み込まれたとしても問題にはなりません)。

import tkFileDialog
file_path_string = tkFileDialog.askopenfilename()

このコードは私が欲しいものに近いのですが、迷惑な空のフレームが開いたままになっています(おそらく閉じるイベントハンドラを登録していないため、閉じることができないのでしょう)。

tkInterを使う必要はありませんが、Pythonの標準ライブラリにあるので、最も迅速で簡単な解決策の良い候補です。

他のUIなしでスクリプトでファイルまたはファイル名をプロンプトするための迅速で簡単な方法は何ですか?

どのように解決するのですか?

他の依存関係を持ちたくないのであれば、Tkinterが最も簡単な方法です。 他のGUI要素を使用せずにダイアログだけを表示するには、ルートウィンドウを隠すために withdraw メソッドを使用します。

import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
root.withdraw()

file_path = filedialog.askopenfilename()

Python 2 のバリアントです。

import Tkinter, tkFileDialog

root = Tkinter.Tk()
root.withdraw()

file_path = tkFileDialog.askopenfilename()