Python
 Computer >> コンピューター >  >> プログラミング >> Python

Tkinterのfiledialogでファイルパス(初期ディレクトリ)を指定する方法


Tkinterには、アプリケーションのUIコンポーネントやユーザー操作用の要素を構築するための組み込み関数やクラスライブラリが数多く用意されています。その中でもfiledialogモジュールは、ファイルやディレクトリを選択するウィンドウを作成するためのクラスと関数を提供しています。ユーザーにシステム上のファイルやフォルダをブラウズしてもらいたい場面で非常に便利です。

さらに、ファイルを選択させるときの起点となるディレクトリの場所を指定することもできます。特定の場所から始まるファイルダイアログを表示するには、静的ファクトリ関数askopenfilename(initialdir=<location>)initialdir=<location>引数を渡します。この関数はモーダル風のダイアログボックスを作成し、ユーザーの選択操作を待ち、選択されたファイルのパスを呼び出し元に返します。

サンプルコード

それでは、システムのディレクトリからファイルを選択させるアプリケーションを作成してみましょう。

# 必要なライブラリをインポート
from tkinter import *
from tkinter import filedialog
from tkinter import ttk

# tkinterウィンドウのインスタンスを作成
win = Tk()
win.geometry("700x350")

# Styleクラスのインスタンスを作成
style = ttk.Style(win)

def open_win_diag():
    # ファイル選択ダイアログを表示(初期ディレクトリをC:/に指定)
    file = filedialog.askopenfilename(initialdir="C:/")
    if file:
        f = open(file, 'r')

# ラベルウィジェットを作成
label = Label(win, text="ボタンをクリックしてファイルを参照してください", font='Arial 15 bold')
label.pack(pady=20)

# ダイアログを開くためのボタンを作成
button = ttk.Button(win, text="Open", command=open_win_diag)
button.pack(pady=5)

win.mainloop()

実行結果

上記のコードを実行すると、ラベルとボタンの2つのウィジェットを持つウィンドウが表示されます。

Tkinterのfiledialogでファイルパス(初期ディレクトリ)を指定する方法

ボタンウィジェットをクリックするとファイルダイアログが起動し、ユーザーはシステム内のファイルを参照できるようになります。

Tkinterのfiledialogでファイルパス(初期ディレクトリ)を指定する方法

askopenfilename()関数に"initialdir=C:/"を指定しているため、ダイアログはCドライブを初期ディレクトリとして開きます。なお、LinuxやmacOSなどWindows以外の環境では、initialdir="/home/user/Documents"のようにOSに応じたパスを指定してください。また、ユーザーが「キャンセル」を選択した場合は空文字列が返されるため、上記のサンプルのようにファイルパスが取得できたかどうかを判定してからファイルを開くと、より安全な実装になります。


  1. Tkinterでポップアップメニューを作成する方法をわかりやすく解説

    ユーザーとの対話が必要なアプリケーションには、メニューバーが欠かせません。メニューは Menu(parent) オブジェクトを初期化し、そこにメニュー項目を追加していくことで作成できます。 ポップアップメニューの場合は、tk_popup(x_root, y_root, False) を呼び出すことで実現します。このメソッドにより、指定した画面座標上に確実にメニューが表示されます。さらに、マウスの右クリック(Button-3)で発火するイベントをバインドすれば、右クリック操作だけでメニューを開けるようになります。また、grab_release() メソッドを使うことで、マウスボタンを離した際にポ

  2. Windows 10でファイルやフォルダーのフルパスをコピーする2つの簡単な方法

    Windowsを使っていると、深い階層のディレクトリをたどってそのパスを保存する必要がある場面はそれほど多くありません。しかし、エクスプローラーの中で奥深くに埋もれたファイルやフォルダーへのショートカットとしてパスを利用できると、意外と便利なことがあります。この記事では、Windows 10でファイルやフォルダーのフルパスをコピーする方法をご紹介します。 Windows 10でファイルやフォルダーのフルパスをコピーする方法 Windows 10では、ファイルやフォルダーの完全なパスをクリップボードにコピーできると非常に便利です。これにより、ファイルを探し回ることなく、開くダイアログやアップロ