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

TkinterのtkFileDialogを使ってファイルの絶対パスを取得する方法

Tkinterは、Pythonに標準搭載されているGUIライブラリです。豊富な組み込み関数やモジュール、パッケージが用意されており、これらを活用することで、実用的なデスクトップアプリケーションを効率的に構築できます。

tkFileDialogはTkinterライブラリに含まれる組み込みモジュールの一つで、システム上のファイルやディレクトリとやり取りするための機能を提供します。なお、Python 3では「tkinter.filedialog」として提供されており、from tkinter import filedialogのようにインポートして使用します。

このモジュールを使って読み取りモードでファイルを選択すると、その後の処理でファイル内の情報を自由に扱えるようになります。さらに、アプリケーションに読み込んだファイルの絶対パスを取得したい場合は、OSモジュールのos.path.abspath(file.name)関数を使用します。この関数は選択したファイルの絶対パスを返すため、その戻り値を変数に格納すれば、ウィンドウ上にパスを表示したり、他の処理に利用したりすることが可能です。

サンプルコード

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

# tkinterフレームのインスタンスを作成
win = Tk()

# ウィンドウサイズを設定
win.geometry("700x350")

def open_file():
    # ファイル選択ダイアログを開く(読み取りモード)
    file = filedialog.askopenfile(mode='r', filetypes=[('Python Files', '*.py')])
    if file:
        # ファイルの絶対パスを取得
        filepath = os.path.abspath(file.name)
        Label(win, text="The File is located at : " + str(filepath), font=('Aerial 11')).pack()

# ラベルウィジェットを追加
label = Label(win, text="Click the Button to browse the Files", font=('Georgia 13'))
label.pack(pady=10)

# ボタンを作成
ttk.Button(win, text="Browse", command=open_file).pack(pady=20)

win.mainloop()

実行結果

コードを実行すると、まず次のようなウィンドウが表示されます。

TkinterのtkFileDialogを使ってファイルの絶対パスを取得する方法

続いて「Browse」ボタンをクリックし、エクスプローラーからPythonファイルを選択してみましょう。すると、選択したファイルの絶対パスがウィンドウ上に表示されます。

TkinterのtkFileDialogを使ってファイルの絶対パスを取得する方法

ポイントまとめ

  • ファイル選択にはfiledialog.askopenfile(mode='r')を使用する
  • 絶対パスの取得にはos.path.abspath(file.name)を使用する
  • 取得したパスは変数に保存し、ラベルなどで画面に表示できる

この手法を応用すれば、ファイルの中身を読み込んで処理したり、選択したファイルの情報を一覧表示したりするアプリケーションも簡単に作成できます。

  1. Tkinterでラベルのテキストを取得する方法を解説

    TkinterのLabel(ラベル)ウィジェットは、ウィンドウ上にテキストや画像を表示するために使用される基本的なコンポーネントです。フォントファミリーやパディング、幅・高さなどのオプションを指定することで、ラベルの見た目を自由にカスタマイズできます。ラベルに設定したテキストを取得したい場合は、ラベルウィジェットに対して [text] を指定するだけで、簡単にその値へアクセスできます。以下に具体的なサンプルコードを示します。サンプルコード# 必要なライブラリをインポート from tkinter import * # tkinterフレームのインスタンスを作成 win = Tk() # ウ

  2. Tkinterを使ってファイルのハードコピー(印刷)を行う方法

    Tkinterは、ローカルシステム内のファイルとやり取りできる機能を開発者に提供するPythonの標準GUIライブラリです。この記事では、filedialogモジュールとwin32apiモジュールを組み合わせて、選択したファイルをプリンターから印刷(ハードコピー)する方法を解説します。必要なモジュールのインストールまず、これらのパッケージを使用するために、環境にモジュールをインストールしておく必要があります。win32apiはWindows専用のライブラリのため、以下のコマンドでpywin32をインストールしてください。pip install pywin32サンプルコード# 必要なライブラリを