我开始学习Python,我现在想在Windows操作系统下创建一个文件到另一个文件的转换器(例如,从png到avi或其他文件扩展名之间)。
我编写了一个运行良好的脚本,它完成了转换过程,但我希望在功能(然后是图形)上改进它;我正在使用Tkinter和我考虑加载文件,可以将它们作为下一个转换命令的输入拖放,而不是打开一个文件夹,将文件作为“输入源”。我找到了这个主题(python drag and drop explorer files to tkinter entry widget),并以这样的方式使用它:
import sys
import os
import Tkinter
from tkdnd_wrapper import TkDND
import shlex, subprocess
from subprocess import Popen, PIPE
import glob
import shutil
root = Tkinter.Tk()
dnd = TkDND(root)
entry = Tkinter.Entry()
entry.grid()
def handle(event):
inputfilespath = event.data
event.widget.insert(0, inputfilespath)
filesdir = os.path.dirname(os.path.realpath(inputfilespath))
files = glob.iglob(os.path.join(filesdir, "*.myext"))
for inputfilespath in files:
if os.path.isfile(inputfilespath):
subprocess1 = subprocess.Popen([...conversion command given as list, not string...], shell=True)
print "\n\nConversione in corso..."
subprocess1.wait()
subprocess1.terminate()
print "\n\nProcesso terminato!"
dnd.bindtarget(entry, handle, 'text/uri-list')
root.mainloop()
问题:
发布于 2014-07-03 06:54:05
只需使用tkinter文件对话框,然后让它将文件插入到输入框中。
示例:
filedialog = tkFileDialog.askopenfilenames(*options*)
entry.insert(END, filedialog)
使用StringVar的示例:
entryVar = StringVar()
entry = Entry(textvariable=entryVar)
filedialog = tkFileDialog.askopenfilenames(*options*)
entryVar.set(filedialog
希望这能有所帮助!
https://stackoverflow.com/questions/19471987
复制相似问题