-1

ディレクトリ内のすべてのファイル名を取得し、リストボックスでユーザーに提示したいのですが、ユーザーは複数の名前を選択して [OK] または [キャンセル] を押すことができます。OK を押すと、選択したファイル名が返されます。助けてください。

4

2 に答える 2

2

Tkinterを使用したかなり簡単な方法を次に示します。

from Tkinter import *


root = Tk()
opt_list = ['opt1','opt2','opt3','opt4','opt5']
sel_list = []

def get_sel():
    sel_list.append(Lb1.curselection())
    root.destroy()

def cancel():
    root.destroy()

B = Button(root, text ="Submit", command = get_sel)
C = Button(root, text ="Cancel", command = cancel)
Lb1 = Listbox(root, selectmode=MULTIPLE)

for i,j in enumerate(opt_list):
    Lb1.insert(i,j)


Lb1.pack()
B.pack()
C.pack()

root.mainloop()

for i in sel_list[0]:
    print opt_list[int(i)]

次に、これを使用して、選択したオプションを取得できます。

for i in sel_list[0]:
    print opt_list[int(i)]

これにより、アイテムを使用してリストボックスが作成されsel_list、ユーザーが送信を押すと、選択された行のタプルが返されます

一度に複数を選択でき、タプルで返されます このサイトから詳細情報を入手してくださいPython Tk チュートリアル ポイント

于 2013-07-25T22:46:51.460 に答える
0

より具体的には、あなたが望むのはhttp://tkinter.unpythonic.net/wiki/tkFileDialogです

#python 3
from tkinter.filedialog import askopenfilename
filenames = askopenfilename(multiple=True)

これは、ファイル名を抽出するために、その人が選択したファイルへのパスのリストを返します。

import os
filenames = [os.path.basename(filename) for filename in filenames]

拡張子のないファイル名が必要な場合は、上記の行の代わりに次を使用します。

filenames = [os.path.splitext(os.path.basename(filename))[0] for filename in filenames]
于 2013-07-25T23:33:08.437 に答える