python GUIでファイルダイアログを開く (tkinter.filedialog)
tkinterでファイルダイアログを使う手順のメモです
フォルダを選択する
tkinter.filedialog.askdirectoryを使えばフォルダを選択するダイアログを開いてくれます。initialdirで初期ディレクトリを指定します。
import tkinter.filedialog
iDir = os.path.abspath(os.path.dirname(__file__))
folder_name = tkinter.filedialog.askdirectory(initialdir=iDir)
ファイルを選択する
tkinter.filedialog.askopenfilenameでファイルダイアログを開けます。filetypesで候補ファイルのパターンを指定し、initialdirで最初に開くディレクトリを指定します。複数ファイルを選択する場合はtkinter.filedialog.askopenfilenamesです。
import tkinter.filedialog
fTyp = [("", "*")]
iDir = os.path.abspath(os.path.dirname(__file__))
file_name = tkinter.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir)
ファイルの拡張子を指定できます。
見出し、パターンの順で与えます。
fTyp = [("データファイル", "*.csv;*.xlsx;*.xls")]
ファイル名の部分一致で選択する事もできます。
fTyp = [("logファイル", "log*")]
使用例
実際使うときはこんな感じで使うと良いと思います。
import os
import tkinter as tk
import tkinter.filedialog
class TkinterClass:
def __init__(self):
root = tk.Tk()
root.geometry("500x350")
button = tk.Button(root, text='ファイルダイアログを開く', font=('', 20),
width=24, height=1, bg='#999999', activebackground="#aaaaaa")
button.bind('<ButtonPress>', self.file_dialog)
button.pack(pady=40)
self.file_name = tk.StringVar()
self.file_name.set('未選択です')
label = tk.Label(textvariable=self.file_name, font=('', 12))
label.pack(pady=0)
button = tk.Button(root, text='フォルダダイアログを開く', font=('', 20),
width=24, height=1, bg='#999999', activebackground="#aaaaaa")
button.bind('<ButtonPress>', self.folder_dialog)
button.pack(pady=40)
self.folder_name = tk.StringVar()
self.folder_name.set('未選択です')
label = tk.Label(textvariable=self.folder_name, font=('', 12))
label.pack(pady=10)
root.mainloop()
def file_dialog(self, event):
fTyp = [("", "*")]
iDir = os.path.abspath(os.path.dirname(__file__))
file_name = tk.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir)
if len(file_name) == 0:
self.file_name.set('選択をキャンセルしました')
else:
self.file_name.set(file_name)
def folder_dialog(self, event):
iDir = os.path.abspath(os.path.dirname(__file__))
folder_name = tk.filedialog.askdirectory(initialdir=iDir)
if len(folder_name) == 0:
self.folder_name.set('選択をキャンセルしました')
else:
self.folder_name.set(folder_name)
if __name__ == '__main__':
TkinterClass()
余談
import tkinter as tk
import tkinter.filedialog
tk.filedialog.askdirectory(initialdir=iDir)
import tkinter as tk
tk.filedialog.askdirectory(initialdir=iDir)
何故!?
Author And Source
この問題について(python GUIでファイルダイアログを開く (tkinter.filedialog)), 我々は、より多くの情報をここで見つけました https://qiita.com/studio_haneya/items/ddbaa76a6ee2c705ad5a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .