86089


タイトルどおり、ファイルダイアログからパスを複数取得し、最終的にファイル名のみをリスト化したいのですがファイル名をリストにできないです。お分かりの方いましたら、教えて頂きたです。

[code]

    import tkinter as tk
    from tkinter import filedialog
    import os
    
    #ファイルダイアログからファイルを選択し、リストでファイル名のみしたい。
    idir = r'C:\Users\0000000000\test'  # 初期フォルダ
    flts= [("PDF", "*.pdf")]  # PDFの拡張子のみ指定
    fls_pth = tk.filedialog.askopenfilenames(filetypes = flts, initialdir = idir)  # ファイル選択ウィンドウの表示
    fls_pth_lst = list(fls_pth) #選択したファイルをリスト化
    print(fls_pth_lst)
    for i in range(0, len(fls_pth_lst)):
        flnm = os.path.basename(fls_pth_lst[i]) #リスト内のパスからファイル名のみ抽出
        flnmlst = list(flnm) #抽出したファイル名をリスト化→できなない要修正
        print(flnm)
    
[/code]

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓出力結果↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

[code]

    ['C:/Users/0000000000/test/a.pdf', 'C:/Users/0000000000/test/b.pdf', 'C:/Users/0000000000/test/c.pdf', 'C:/Users/0000080000/test/d.pdf']
    a.pdf
    b.pdf
    c.pdf
    d.pdf
    ※['a.pdf', 'b.pdf', 'c.pdf', 'd.pdf']のようにしたいです。
    Process finished with exit code 0
    
[/code]


CC BY-SA 4.0
2022-02-02T04:40:48.197
86088
2022-02-02T05:42:56.663
2022-02-02T04:42:50.737
3475
51209
question
python
ファイルダイアログからパスを複数取得し、最終的にファイル名のみをリスト化したい


この手の処理は、内包表記で加工するとシンプルです。

[code]

    flnmlst = [os.path.basename(item) for item in fls_pth_lst]
    print(flnmlst)
    
[/code]

元のコードのように通常の`for`ループを使うと、以下のようになります。

[code]

    flnmlst = []
    for item in fls_pth_lst:
        flnmlst.append(os.path.basename(item))
    print(flnmlst)
    
[/code]


CC BY-SA 4.0
2022-02-02T04:51:05.483
86089
2022-02-02T05:42:56.663
2022-02-02T05:42:56.663
3475
3475
86088
answer