Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

【第7回】Tkinterを用いたファイルダイアログの表示とフォルダ・ファイルパスの取得

はじめに

 アプリを作成する際にグラフィカルユーザーインターフェースGUI)として、ウィンドウを表示させて、そこでボタン操作などを行って機能を活用できるようにするのが一般的です。Pythonには、GUIを作成するためのツールキットのtkinterがあります。tkinterは標準のライブラリとなっており、インストールは不要になっています。tkinterでウィンドウ表示できる項目にラベル、テキストボックス、ボタンなどがあります。さらに、GUIで操作する際に開いたり、処理をしたいフォルダやファイルを選択することがあります。そこで使用するのがファイルダイアログであり、これはフォルダやファイルを選択するウィンドウになります。

 本記事ではtkinterを用いたGUI製作として、tkinter.filedialogを用いたファイルダイアログの表示とフォルダ・ファイルパスの取得について紹介します。

SAMURAI TERAKOYA

 

1. ファイルを選択するダイアログ:tkinter.filedialog.askopenfilename()

1.1 1つのファイルを選択して、選択したファイルパスを取得

ファイルを選択するダイアログではtkinter.filedialog.askopenfilename()を以下の様に用います。filetypesは選択するファイルの種類(.jpgや.xlsxなど)、 initialdirは最初に開くディレクトリを指定します。

filename = filedialog.askopenfilename(filetypes=***, initialdir=***)

 

以下に例を示します。以下ではfiletypesは「すべてのファイル」を選択可能な状態を指定し、initialdirはos.path.dirname(__file__) およびos.path.abspath()を用いて実行中のファイルがあるフォルダの絶対パスを指定しています。ダイアログが開かれてファイルを選択すると、選択したファイルの絶対パスを取得できます。

上記を実行すると下図のダイアログが表示されます。

 

1.2 複数のファイルを選択して、選択したファイルパスを取得

さらに、複数のファイルを選択したい場合には、tkinter.filedialog.askopenfilenames()を以下の様に用います。filetypesは選択するファイルの種類(.jpgや.xlsxなど)、 initialdirは最初に開くディレクトリを指定します。

filename = filedialog.askopenfilenames(filetypes=***, initialdir=***)

 

先ほどと同じように、ダイアログが開かれて複数のファイルを選択すると、選択した複数のファイルの絶対パスを取得できます。

上記を実行すると下図のダイアログが表示されます。

 

1.3 ファイル拡張子を指定し、ファイルを選択して、選択したファイルパスを取得

上記ではファイルはすべての拡張子のものを選択できましたが、ここではファイルの拡張子を限定して、指定した拡張子のファイルを選択できるようにします。

ファイルの拡張子を指定するには、filetypesの内容を修正する必要があります。filetypesを[('表示名', '拡張子')]のようにしてファイルの拡張子を指定します。以下に例を示します。以下では、[('JPEG', '.jpg'), ('PNG', '.png')]のようにして拡張子jpg、pngのみ選択できるようにしています。

選択する際のダイアログを見ると、拡張子が限定されているのがわかると思います。

 

2. フォルダを選択するダイアログ:tkinter.filedialog.askdirectory()

ファイルを選択するダイアログではtkinter.filedialog.askdirectory()を以下の様に用います。 initialdirは最初に開くディレクトリを指定します。

filename = filedialog.askdirectory(initialdir=***)

 

以下に例を示します。以下ではinitialdirはos.path.dirname(__file__) およびos.path.abspath()を用いて実行中のファイルがあるフォルダの絶対パスを指定しています。ダイアログが開かれてフォルダを選択すると、選択したフォルダの絶対パスを取得できます。

上記を実行すると下図のダイアログが表示されます。ボタンも「フォルダー選択」になっています。

 

オススメ書籍

Pythonによるあたらしいデータ分析の教科書

Python3エンジニア認定データ分析試験の教科書にもなっている書籍で、データ分析に必要なPythonの基礎手法を身に付けることができます。具体的には、numpyとpandasを用いたデータの前処理、matplotlibを用いたデータのグラフ化、scikit-learnを用いた機械学習の基礎記述方法を身に付けることができます。これ一つで基礎はバッチリで、実務でも十分活用できると思います。個人的には見やすい書籍でした。

データサイエンス教本 Pythonで学ぶ統計分析・パターン認識・深層学習・信号処理・時系列データ分析

こちらの書籍は初心者から少し記述できるようになった人、かつ数学的な理論と一緒にPythonの記述方法を理解したい方にオススメです。統計分析、パターン認識、深層学習、信号処理、時系列データといった幅広く実務で使用する手法を学びたい方にもオススメです。

東京大学のデータサイエンティスト育成講座 ~Pythonで手を動かして学ぶデ―タ分析~

こちらの基礎を抑えながら実務で必要なPython記述法を学べる書籍です。基礎を一つ一つ抑えるというよりも実務で活用できるように必要な知識を身に付けられると感じました。これ一冊あれば十分かなと思いました。

 

スキル修得&転職

 近年、DXの進展に伴うデジタル人材の需要の高まりに追いついていない状況が続いていると経済産業省がホームページで記載している通り、DX人材、IT人材が不足しているのが現状です。さらにコンピュータの性能向上やAI技術の発展により、よりDX人材、IT人材の需要が高まってきます。さらには、今後の長期間安定して職がある業種とも考えられます。

以下の求人では、IT業界の転職や、IT未経験だけどIT人材を志望する就活を支援してくれます。無料で会員登録もできるので、まずは登録だけでもして様子を見てみてはいかがでしょうか?

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

 

おわりに

 本記事ではtkinterを用いたGUI製作として、tkinter.filedialogを用いたファイルダイアログの表示とフォルダ・ファイルパスの取得について紹介しました。アプリを作成していると、ファイルや選択をユーザーに指定してもらう仕様になる時があります。その際にはダイアログを開いてファイルやフォルダを選択してもらい、選択したファイルやフォルダに対して何かしらの処理をするケースが多いと思います。そういったケースが多いので、GUIを作成したい方は本記事の内容は使いこなせるようになりましょう。