94377


Pythonで関数内の `if` 内で定義された変数の処理に困っています。

以下のようなプログラムを作っています。

**目的:**  
同階層フォルダ、もしくは1つ下の階層のフォルダの中にあるpngファイル名の変更

  * TKinterのラジオボタンを使って、指定階層を【同階層】【1つ下の階層】と切り替え
  * ウィジェット変数を使ってフォルダのパスを取得
  * `/*.png` と `/*/*.png` をくっつけてglobでまとめて取得

初心者ゆえとりあえず思いついたものいろいろやってみたのですが、何も取得できず困ってます。

**問題のコード**  
こちらのpathがおそらく取得できておらず空の状態になっています。  
どのようにしたらいいでしょうか。  
ラジオボタンの値取得などは正常に動作しているようですが、filelistを確認しても何も入っていませんでした。

[code]

    def list_create():
        def get_file_path():
            path = ''
            folder_path = folder.get()
            if rename_type.get() == 1: 
                path = folder_path + '/*.png'
            elif rename_type.get() == 2: 
                path = folder_path + '/*/*.png'
            return path
        
        path = get_file_path()
        filelist = glob.glob(path)
    
[/code]

下記に関係ありそうな部分を抽出しています。folderやrename_typeはこちらにあります。

[code]

    #ウィジット変数
    folder = tkinter.StringVar()
    rename_type = tk.StringVar(value="ファイル名変更")
    
    #フレームに入れる
    frame = tk.Frame(window)
    frame.pack(side=tk.TOP, pady=10)
    part_rename_radiobutton = tk.Radiobutton(frame, text="個々", variable=rename_type, value=1)
    export_rename_radiobutton = tk.Radiobutton(frame, text="まとめて", variable=rename_type, value=2)
    
[/code]


CC BY-SA 4.0
2023-03-30T02:44:15.527
94376
2023-03-30T09:14:39.360
2023-03-30T09:14:39.360
7347
57743
question
python python3
関数内のifで定義された変数の処理について


>
[code]

>     rename_type = tk.StringVar(value="ファイル名変更")
>  
[/code]

これは文字列型では無いでしょうか？  
`if` 文の分岐では数値で判断しているのであてはまらず、`path` の中身が空のままになります

文字列で比較して分岐させるか、数値に変換して分岐させればいかがでしょうか


CC BY-SA 4.0
2023-03-30T03:04:40.337
94377
2023-03-30T04:54:58.153
2023-03-30T04:54:58.153
3060
52727
94376
answer