我指的是,比如说,如果将文件拖放到程序的图标上,图像编辑器如何自动打开该文件。现在,我不是在开发图像编辑器,而是从文件中读取输入。
我怎样才能做到这一点?
我指的是,比如说,如果将文件拖放到程序的图标上,图像编辑器如何自动打开该文件。现在,我不是在开发图像编辑器,而是从文件中读取输入。
我怎样才能做到这一点?
你在这里可以指的是两种不同的东西。
首先,您可以将文件拖到程序的可执行文件上。例如,我在一个窗口中打开我的主目录,在另一个窗口中打开 /usr/local/bin,然后将 spam.txt 从左侧窗口拖放到右侧的 myprogram 中。
理论上,这里发生的事情完全取决于文件管理器。然而,大多数文件管理器——包括 Windows Explorer 和 OS X Finder 以及大多数流行的 linux 发行版附带的默认设置——都会做同样的事情:只需运行程序,就好像你在 shell 中输入了这个一样:
"/usr/local/bin/myprogram" "/home/kevinmills/spam.txt"
因此,从内部myprogram
,您只需要查看sys.argv[1:]
文件列表,无论它们是在命令行上还是通过拖放提供的,它都将以相同的方式工作。
如果您将文件拖到符号链接、Windows 快捷方式或 Mac 别名到存储在其他地方(例如桌面上)的程序可执行文件,实际上会发生同样的事情,您不必担心差异。
如果您已经为 OS X 构建了一个应用程序包,而不仅仅是一个平面脚本,事情就会变得更加复杂。然而,所有可以让你在不知道你在做什么的情况下构建这样一个包的更简单的包装器应该自动处理使它看起来与平面脚本相同的魔法,所以你不必担心那。
或者,您可能会询问是否将文件放在码头或任务栏等上已经运行的程序的某种表示上。
那更复杂。而且每个平台都不一样。但幸运的是,这不是你正在做的。