【Python】Tkinterを使用してファイルをダイアログボックスで選択する

ダイアログボックス

こんにちは!

皆さんは、Pythonでファイルを扱う時にどのようにファイルを指定していますか?
多くの方がファイルパスを指定してファイルを選択することが多いと思います。

しかし、その場合は、ファイルがどこにあるかを確認しなければなりません。
また、ファイルの場所を移動した場合には、ファイルパスが変わるので、プログラムを変更しなければなりません。

そこで、ダイアログボックスでファイルを選択するようにすると、ファイルの場所を探すことができ、ファイルの場所を移動してもプログラムの変更の必要はありません。

そこで今回は、ファイルの指定をダイアログボックスで行う方法を、サンプルプログラムを通して紹介していきます。

ダイアログボックスを使用するには、「Tkinterモジュール」というものを使用します。


1. Tkinterモジュール

Tkというグラフィカルなユーザーインターフェイスを作成するためのツールキットがあります。

TkinterはそのTkをPythonで扱うためのモジュールです。

今回は、Tkinterモジュールの一部の機能を使用して、ダイアログボックスの操作を行います。

Tkinterモジュールは、Pythonの標準ライブラリに含まれているため、インストールは不要です。


2. ファイルの保存先をダイアログボックスで選択

以下のプログラムは、「Python初心者の備忘録」というテキストを、保存先をダイアログボックスで選択して、テキストファイルとして保存するプログラムです。

import tkinter as tk
import tkinter.filedialog as fd

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

file = fd.asksaveasfilename(
    initialfile = "data",
    defaultextension = ".txt",
    title = "Choose a file",
    filetypes=[("TEXT", ".txt")]
    )

data = "Python初心者の備忘録"

if file:
    with open(file, "w", encoding="utf_8") as f:
        len = f.write(data)

asksaveasfilename()でダイアログボックスが開きます。
そして、選択したファイルのパスが変数fileに格納されます。

initialfileで書き込むファイル名を、defaultextensionで拡張子を指定します。

ダイアログボックスでキャンセルを選択してしまうと変数fileには何も代入されないため、最後のif文で確認しています。

またrootから始まる2行は、白い小さなtkアプリウインドウが開かれてしまうのを防ぐ操作です。
tkアプリウインドウはダイアログボックスを操作する上で必要ないので開かれないようにしましょう。



3. 読み込むファイルをダイアログボックスで選択

以下のプログラムは、読み込むテキストファイルをダイアログボックスで選択して、その内容を出力するプログラムです。

import tkinter as tk
import tkinter.filedialog as fd

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

file = fd.askopenfilename(
    title = "Choose a file",
    filetypes=[("TEXT", ".txt")]
)

if file:
    with open(file, "r", encoding="utf_8") as f:
        text = f.read()
        print(text)

askopenfilename()でダイアログボックスが開きます。

filetypesで選択できるファイル形式を指定します。
そして、選択したファイルのパスが変数fileに格納されます。

ダイアログボックスでキャンセルを選択してしまうと変数fileには何も代入されないため、最後のif文で確認しています。


4. まとめ

いかがでしたか?

ダイアログボックスでファイルを選択する方法について理解できたでしょうか?

ダイアログボックスを使用するには、Tkinterモジュールにある、asksaveasfilename()、askopenfilename()を使用します。

ダイアログボックスを使うことで、ファイルを視覚的に選択することができるので、とても便利です。

アプリケーションなどでファイルを選択させたい場合には、ダイアログボックスがよく使われるので、それらを開発する際には、必須の知識となります。

Pythonでのダイアログボックスの操作をしっかりと覚えて、使えるようにしましょう!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です