如何在 OS X 上拖放到 (python) 脚本上?
Posted
技术标签:
【中文标题】如何在 OS X 上拖放到 (python) 脚本上?【英文标题】:How do I drag and drop onto a (python) script on OS X? 【发布时间】:2015-07-12 06:04:50 【问题描述】:有什么方法可以配置最近的 OS X 系统,以便 python 脚本自动充当拖放目标?如果不是,那么为这种行为配置单个脚本的最轻量级(理想情况下可编写脚本)的方法是什么?
在 Windows 上,我可以简单地将文件拖放到 python 脚本中,然后将启动一个 python 进程,并使用sys.argv
中提供的已删除参数的完整路径名。令人惊讶的是,这不仅不会在 OS X 上发生,而且似乎也没有任何方法可以将系统配置为自动执行此操作。我遇到的所有解决方案都涉及将我的每个脚本包装在一个应用程序中。
当然,这个问题之前已经被问过和回答过。但不仅我能找到的每一个答案都仅限于一次启用一个脚本的拖放(通过在它们周围包装一个应用程序);似乎所有答案都已过时和/或取决于断开的链接。这是一个采样器:
In python, how do I drag and drop 1 or more files onto my script as arguments with absolute path? (for windows, linux, and mac)
How do I execute a shell script with selected files/folders in Finder?
How to pass path names to Python script by “dropping” files/folders over script icon
如前所述,它们似乎都不再起作用了。我有 OS X 10.8、Mountain Lion,并且我看到了可以在更高版本的操作系统上运行的 zilch。有最新的解决方案吗?
PS: 从概念上讲,这个问题不一定限于 python:我很确定任何可以与 shell 或 perl 脚本一起使用的机制也可以与 python 一起使用。但考虑到这在 OS X 上似乎有多么困难,我将问题具体化,因为这是我的用例,而且我看到的所有解决方案似乎都是特定于语言的。
【问题讨论】:
【参考方案1】:你见过this answer吗?尝试使用 Mac OS X Automator(在当前和过去版本的操作系统中可用——刚刚在 Yosemite 中测试过)。至于“一次一个”与“多个”,this SuperUser post about the same subject 解释了如何使其适用于多个文件。
归根结底,“拖放支持”是 Windowing System 的功能,与 Python 无关。也就是说,您可以在 Python 中构建 OS X GUI 应用程序,这可能是另一种解决方案。查看有关GUI Applications in Python 的链接了解更多信息。
【讨论】:
谢谢,我得再看一遍。很久以前看过,不记得遇到什么问题了。但我只是说我同意这应该是窗口系统的一个功能......显然,OS X 设置还有很多不足之处,并且有特定于 python 的路径来包装应用程序。 .. 是的,如果你让它工作,请报告,因为其他人,包括我自己,都可以从中受益;) Automator 听起来像是标准的 MacOS 方式,但你绝对也可以构建一个任何语言的简单 OS X 应用程序。显然,对于原生应用,您只需 configure a few things in your app's plist。以上是关于如何在 OS X 上拖放到 (python) 脚本上?的主要内容,如果未能解决你的问题,请参考以下文章
在OS X El Capitan上通过crontab启动python脚本
如何在 Mac OS X 上获取拖放到应用程序二进制文件中的文件列表? [关闭]