tkinter

【Python/tkinter】名前を付けて保存ダイアログボックスの表示

スポンサーリンク

名前を付けて保存ダイアログボックスを表示するには、tkinter.filedialogモジュールのasksaveasfilename()関数を使います。

以下にシンプルなサンプルプログラムを示します。

from tkinter import filedialog

filename = filedialog.asksaveasfilename()
print(filename)

(実行結果)

python tkinter 名前を付けて保存の表示

 

スポンサーリンク

オプション

オプション名説明
parentダイアログを表示する親のウィンドウを指定します。
titleダイアログのタイトルを指定します。
initialdir最初に表示されるディレクトリを指定します。
initialfile最初に選択されているファイル名を指定します。
filetypes選択可能なファイルの種類を設定します。
defaultextension拡張子が入力されない場合に追加する拡張子を指定します。

(参考)

Tkinter Dialogs — Python 3.9.1 ドキュメント

 

名前を付けて保存ダイアログボックスはファイルを開くダイアログボックスとも似ていますが、defaultextensionオプションが異なります。

これは名前を付けて保存ダイアログの「ファイル名」の部分に拡張子を指定しなかった場合に、defaultextensionオプションで指定した拡張子が付加されます。

python tkinter 名前を付けて保存の表示

 

それでは、defaultextensionオプションを指定せずにfiletypesオプションを指定すると、どうなるか?というと、「ファイル名」の部分に、拡張子を付けずにファイル名を入力しても、「ファイルの種類」で指定された拡張子で、拡張子が自動で付加される事はありません。

filename = filedialog.asksaveasfilename(
    filetypes = [("Bitmap", ".bmp"), ("PNG", ".png"), ("JPEG", ".jpg"), ("Tiff", ".tif") ], # ファイルフィルタ
    )

そのため、filetypesオプションとdefaultextensionオプションは両方指定して、以下のようにします。

from tkinter import filedialog

filename = filedialog.asksaveasfilename(
    title = "名前を付けて保存",
    filetypes = [("Bitmap", ".bmp"), ("PNG", ".png"), ("JPEG", ".jpg"), ("Tiff", ".tif") ], # ファイルフィルタ
    initialdir = "./", # 自分自身のディレクトリ
    defaultextension = "bmp"
    )
print(filename)

このようにすると、「ファイルの種類」で指定された拡張子で、自動で拡張子が付加されます。

上記のプログラムではdefaultextension が “bmp”ですが、「ファイルの種類」がPNGのときは、ちゃんと.pngを付加してくれます。

もっというと、defaultextension = “” としても、「ファイルの種類」で指定された拡張子が付加されます。

(実行結果)

python tkinter 名前を付けて保存の表示

コメント

タイトルとURLをコピーしました