Okoge-keys's picture
Upload 9 files
bd01ca9 verified
#!/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)