Pythonでファイルダイアログを表示する(tkinter.filedialog)

スポンサーリンク

Pythonではファイルダイアログを表示することができます。

ファイルを開いたり選択したりする際に開くファイル選択ウィンドウですね。「tkinter.filedialog」を使ってファイルダイアログを表示することができますが、拡張子を指定したり、初期表示するパスを指定することもできます。

今回は「tkinter.filedialog」を使って、Pythonでファイルダイアログを表示する方法を解説します。

Pythonでファイルダイアログ

ファイルダイアログでファイルを選択する

from tkinter import filedialog

typ = [('テキストファイル','*.txt')] 
dir = 'C:\\pg'
fle = filedialog.askopenfilename(filetypes = typ, initialdir = dir) 

print(fle)
#[結果] C:/pg/python/LICENSE.txt

Pythonでファイルダイアログを表示するには「tkinter」の「filedialog.askopenfilename」を使います。

ここでは拡張子を「*.txt」としてテキストファイルを選択するファイルダイアログを表示しました。ファイルダイアログを表示したときに初期表示するパスは「C:\pg」を指定しました。

ファイルを選択して「開く」ボタンをおすと、ファイルのパスが取得できました。

ファイルダイアログで複数ファイルを選択する

from tkinter import filedialog

typ = [('', '*')]
dir = 'C:\\pg'
fle = filedialog.askopenfilenames(filetypes = typ, initialdir = dir) 

for f in fle:
    print(f)
#[結果] C:/pg/data1.xlsx
#[結果] C:/pg/data2.xlsx
#[結果] C:/pg/data3.xlsx

Pythonのtkinterは複数ファイルを選択できます。

複数ファイルを選択するには「filedialog.askopenfilenames」を使います。「filedialog.askopenfilenames」の戻り値は配列になるので、forループで1つずつ取り出しました。

複数ファイルを選択し、すべてのファイルのファイルパスを取得できました。

ファイル拡張子の指定

# すべてのファイル
typ=[('', '*')]
# テキストファイルのみ
typ=[('テキストファイル', '*.txt')]
# テキストファイルとCSVファイル
typ = [('テキストファイル', '*.txt'), ('CSVファイル', '*.csv')]

Pythonでファイル選択ダイアログを表示する際に、拡張子を指定する場合は、「’*.拡張子’」とします。拡張子を指定しない場合は、「’*’」とします。

これで拡張子を指定して、ファイルダイアログを表示することができました。

参考ページhttps://docs.python.jp/3/library/tk.html

以上、Pythonでファイルダイアログを表示する方法でした。

コメント