#!/usr/bin/env python # -*- coding: utf-8 -*- import tkinter as tk from tkinter import filedialog import sys import os import time def select_folder(initial_dir=None): """ フォルダ選択ダイアログを表示し、選択されたフォルダパスを標準出力に出力する Args: initial_dir (str, optional): 初期ディレクトリ """ # tkinterのルートウィンドウを作成 root = tk.Tk() # ウィンドウを最小化して、タスクバーに表示しない root.iconify() # ウィンドウを前面に表示 root.attributes('-topmost', True) # 少し待機して、ウィンドウが確実に作成されるようにする time.sleep(0.1) # 初期ディレクトリが指定されていて、存在する場合はそこから開始 if initial_dir and os.path.isdir(initial_dir): folder_path = filedialog.askdirectory( parent=root, initialdir=initial_dir, title="フォルダを選択してください" ) else: # 指定がない場合はデフォルトの場所から開始 folder_path = filedialog.askdirectory( parent=root, title="フォルダを選択してください" ) # 選択されたフォルダパスを標準出力に出力 if folder_path: print(folder_path) # tkinterのメインループを終了 root.destroy() if __name__ == "__main__": try: # コマンドライン引数から初期ディレクトリを取得 initial_dir = sys.argv[1] if len(sys.argv) > 1 else None select_folder(initial_dir) except Exception as e: # エラーが発生した場合は標準エラー出力に出力 sys.stderr.write(f"エラーが発生しました: {str(e)}") sys.exit(1)