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