简体   繁体   English

如何在OS X上拖放到(python)脚本上?

[英]How do I drag and drop onto a (python) script on OS X?

Is there any way to configure a recent OS X system so that python scripts automatically behave as drag and drop targets? 有什么方法可以配置最新的OS X系统,以便python脚本自动充当拖放目标? If not, what is the most light-weight way (ideally scriptable) of configuring individual scripts for this behavior? 如果不是,那么为此行为配置单个脚本的最轻量方式(理想情况下是可编写脚本的)是什么?

On Windows, I can simply drag and drop files onto a python script, and a python process will be launched with the full path names of the dropped arguments available in sys.argv . 在Windows上,我可以简单地将文件拖放到python脚本上,然后将使用sys.argv可用的已删除参数的完整路径名启动python进程。 Amazingly, not only does this not happen on OS X, but there doesn't seem to be any way of configuring the system to do this automatically. 令人惊讶的是,这不仅不会在OS X上发生,而且似乎没有任何方法可以将系统配置为自动执行此操作。 All the solutions I've come across involve wrapping each of my scripts in an app. 我遇到的所有解决方案都涉及将每个脚本包装在一个应用程序中。

Sure, this question has been asked and answered before. 当然,之前已经有人问过这个问题了。 But not only is every single answer I could find limited to enabling drag and drop for one script at a time (by wrapping an app around them); 但是,不仅我能找到的每个答案都限于一次为一个脚本启用拖放(通过在它们周围包装一个应用程序); it seems that all answers are obsolete and/or depend on broken links. 似乎所有答案都已过时和/或取决于断开的链接。 Here's a sampler: 这是一个采样器:

As mentioned, none of them seem to work anymore. 如前所述,它们似乎都不再起作用。 I have OS X 10.8, Mountain Lion, and I've seen zilch that could be expected to work on later OS versions. 我有OS X 10.8,Mountain Lion,并且已经看到zilch可以在更高的OS版本上使用。 Any up to date solutions? 有最新的解决方案吗?

PS: Conceptually this question is not necessarily limited to python: I'm pretty sure that any mechanism that would work with shell or perl scripts would also work with python. PS:从概念上讲,这个问题并不仅限于python:我非常确定,任何适用于shell或perl脚本的机制都将适用于python。 But given how hard this seems to be on OS X, I'm keeping the question specific since that's my use case, and all solutions I've seen seem to be language-specific. 但是考虑到这在OS X上看起来有多难,我将这个问题具体化,因为这是我的用例,我所看到的所有解决方案似乎都是特定于语言的。

Have you seen this answer ? 你看到这个答案了吗? Try using Mac OS X Automator (available in current and past versions of the OS--just tested this in Yosemite). 尝试使用Mac OS X Automator(在当前和过去的OS版本中可用-刚刚在Yosemite中进行了测试)。 As far as "one at a time" vs "multiple", this SuperUser post about the same subject explains how to make it work for multiple files. 关于“一次”还是“多个”, 有关同一主题的此SuperUser帖子介绍了如何使其适用于多个文件。

At the end of the day, "Drag and Drop Support" is functionality of the Windowing System and has nothing to do with Python. 归根结底,“拖放支持”是Windowing System的功能,与Python无关。 That said, you can build OS X GUI apps in Python, which could be another solution to this. 也就是说,您可以使用Python构建OS X GUI应用程序,这可能是另一种解决方案。 Check out this link about GUI Applications in Python for more info. 查看有关Python中GUI应用程序的此链接获取更多信息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM