Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,如何将1个或多个文件作为具有绝对路径的参数拖放到脚本上?(适用于windows、linux和mac)_Python_Scripting_Drag And Drop_Arguments - Fatal编程技术网

在python中,如何将1个或多个文件作为具有绝对路径的参数拖放到脚本上?(适用于windows、linux和mac)

在python中,如何将1个或多个文件作为具有绝对路径的参数拖放到脚本上?(适用于windows、linux和mac),python,scripting,drag-and-drop,arguments,Python,Scripting,Drag And Drop,Arguments,我正在编写一个没有GUI的简单Python脚本。我希望能够将多个文件拖放到python脚本上,并能够访问脚本中的绝对路径。在Mac、Linux和windows中如何实现这一点?看在时代的份上,现在只有Mac可以了 我在谷歌上搜索了这个问题,只找到了一个相关的问题,但太令人困惑了。我目前正在运行MacOSXSnowLeopard 非常感谢您的帮助 谢谢 通常,当您将文件拖到脚本/可执行文件上时,操作系统会将该文件的路径作为命令行参数传递。检查sys.argv这实际上与python无关。这完全取决于

我正在编写一个没有GUI的简单Python脚本。我希望能够将多个文件拖放到python脚本上,并能够访问脚本中的绝对路径。在Mac、Linux和windows中如何实现这一点?看在时代的份上,现在只有Mac可以了

我在谷歌上搜索了这个问题,只找到了一个相关的问题,但太令人困惑了。我目前正在运行MacOSXSnowLeopard

非常感谢您的帮助


谢谢

通常,当您将文件拖到脚本/可执行文件上时,操作系统会将该文件的路径作为命令行参数传递。检查sys.argv

这实际上与python无关。这完全取决于您使用的文件浏览器以及它支持拖放的方式。

对于OS X,最简单的方法是让脚本作为应用程序包的一部分运行(
.app
)。您可以使用类似的方法来构建python应用程序。另一种方法可能是使用
Automator
AppleScript
创建一个应用程序,该应用程序接受输入参数并将其传递给python脚本。自动机使用的一个例子是。

我就是这么想的,但是当将鼠标悬停在带有文件的脚本上时,脚本不会高亮显示。就像我不能把文件放到上面一样。我在上面做了一个chmod+x,并使用“#!/usr/bin/env python”编码:utf-8如果这有什么不同的话,那么我如何使用Mac OS的Finder文件浏览器来支持这一点呢?我的希望是制作一个可以在多个系统上工作的python脚本,它只检查你在哪个系统上,并执行适当的代码正如歌曲所说,你不可能总是得到你想要的。在OSX上,AFAIK的整个拖放功能都被绑定到了应用程序机制中。我特意没有提到的另一种方法是使用一个助手应用程序来启动和运行python脚本。org发行版提供了这样一个helper应用程序,但它存在安全风险,因此不鼓励使用它(在未来的python版本中可能会删除它)。这是一个风险,因为它可以启动任何python脚本,即使是由web浏览器自己加载的脚本。有一个特定的应用程序包装你的脚本会更好更安全。啊,好吧。太遗憾了,我不能让它通用。我将继续尝试py2app。谢谢你的信息!