【ダイアログ表示】ファイル選択画面(ポップアップ)を開いて処理するファイルを選ぶ

ネットコードの途中でファイルを選択する際、コードと同じ階層にあるファイル名のみを記載するものが多いと思います。しかしそれだと違うファイルを操作する度にコードを書き直さなくてはいけません。
そこでここでは「tkinter」を使いファイル選択の画面からファイルを選ぶ方法を紹介します。

 

 

1.アウトプット

今回は対象のファイルをファイル選択画面から選ぶようなコードに書き換えます。。

 

2.コードの紹介

コードは次のようになります。動作は以前紹介したものと同じになりますが、今回は最後の完成ファイルもすでにファイルがあり選択するようになっています。もしもファイルを新規作成する仕様にしたい場合は、ファイルパスを書くようにしてください。

import openpyxl
from openpyxl import load_workbook
import tkinter.filedialog
import tkinter as tk
#tkinterを動作させる基盤のウインドウ作成&非表示
root = tk.Tk()
root.withdraw()
#読み込み先、書き込み先、完成のファイル選択
filepath1 = tkinter.filedialog.askopenfilename(filetypes=[('Excelファイル','*.xlsx')])
filepath2 = tkinter.filedialog.askopenfilename(filetypes=[('Excelファイル','*.xlsx')])
filepath3 = tkinter.filedialog.askopenfilename(filetypes=[('Excelファイル','*.xlsx')])
#それぞれのファイルパスに上記で選択したファイルを代入
wb1 = openpyxl.load_workbook(filename=filepath1)
ws1 = wb1['サンプル']
wb2 = openpyxl.load_workbook(filename=filepath2)
ws2 = wb2['フォーマット']
for i in range(1,7):
for j in range(1,7):
copy = ws1.cell(row = i, column = j).value
ws2.cell(row = i+2, column = j, value = copy)
j += 1
i += 1
wb2.save(filename=filepath3)

ファイルをフォルダから選択させるには次のように書き、選択肢にファイルの種類を指定してそれ以外は表示されないようにすることが出来ます。
第一引数のはご自身が分かるように自由に書いて大丈夫です。

tkinter.filedialog.askopenfilename(filetypes=[(‘Excelファイル’,’*.xlsx’)])

第一引数に選択肢の説明、第二引数に拡張子を書きます。以下、例をいくつか紹介します。
 [(“すべてのファイル”, “*”)]
 [(“Excelファイル”, “*.xlsx”)]
 [(“CSVファイル”, “*.csv”)]
 [(“PDFファイル”, “*.pdf”)]
 [(“テキストファイル”, “*.txt”)]

 

3.終わりに

今回はプログラム中でファイルを指定する際にフォルダから選択できる「tkinter」を使った事例を紹介しました。ファイルパスを指定しないので他の人が違うファイルを操作する場合にもコードの書き換えが不要など、使い勝手がいいと思うのでぜひ活用してください。

Comments

コメントを残す

PCスキル備忘録をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む