将拖放文件拖放到 Python 脚本上
Posted
技术标签:
【中文标题】将拖放文件拖放到 Python 脚本上【英文标题】:Drag drop file onto Python script 【发布时间】:2011-10-21 14:21:09 【问题描述】:我正在寻找一种跨平台的方法,通过实现拖放方法使我的 Python 脚本处理文件的路径。目前我手动转到终端并使用sys.argv
方法:
python myscript.py /Python/myfile.xls
但是,这是缓慢且“技术性”的。理想情况下,我会采用一种快速且交互式的方式来允许我的 Python 脚本处理文件。我主要需要它来为 Mac 工作,但跨平台会更好。
【问题讨论】:
【参考方案1】:如果您想使用 Tkinter,请查看此处的 Tkinter DnD 绑定 http://klappnase.bubble.org/TkinterDnD/index.html
运行时,绑定会显示一个带有列表框的示例,允许您将文件拖到其上。
【讨论】:
你有这个绑定吗?它不再可访问。另外,请参阅此问题 ***.com/questions/14267900/… 以获取有关同一问题的新问题。 @mmgp 你可以使用 WayBack 来获取 zip (web.archive.org/web/20120104000747/http://klappnase.bubble.org/…)【参考方案2】:您想将 myfile.xls 拖放到文件导航器中的 python 脚本上吗?说 Finder 或 Mac 上的任何东西,Win 上的 Explorer,Nautilus 等?在这种情况下,不会有一个简单的跨平台解决方案,因为您必须在不同系统上连接不同的软件。
对于特定于 Mac 的解决方案,请尝试 AppleScript - 这是sample
对于 Pythonic 的东西有 http://appscript.sourceforge.net/ , http://docs.python.org/library/macosa.html
否则解决方案在上面的答案中。使用内置于 Tk、wx 或 QT 中的自定义 GUI。您可以查看他们各自的文档以进行拖放,他们确实有跨平台的方式。
【讨论】:
您真的需要在 2011 年在 Mac 上编写 AppleScript 吗? Windows 安装会自动进行设置 - 删除的文件会发送到argv
。【参考方案3】:
使用 Tkinter 或类似的东西编写一个小型 GUI 并让用户从 GUI 中选择一个文件是最简单的。大致如下:
import tkFileDialog
f = tkFileDialog.askopenfilename()
# Go on from there; f is a handle to the file that the user picked
但是,我不知道有任何跨平台方法可以让脚本使用拖放功能。不过,这可能更容易。
【讨论】:
这不是所要求的答案。以上是关于将拖放文件拖放到 Python 脚本上的主要内容,如果未能解决你的问题,请参考以下文章