如何获取使用 Mac 应用程序请求打开哪个文件?

如何获取使用 Mac 应用程序请求打开哪个文件?

我已经创建了一个可以打开我的文件扩展名的 Mac 应用程序。

但是当我测试它时,我没有得到使用该应用程序请求打开的文件的路径,而是得到了“psn_0_151589”。

我检查了 itunes、textedit、xcode 和其他应用程序。

下面是我的 Python 应用程序示例主代码,其中我处理打开文件的路径

import sys
import os.path
print("File opened with this app :: ",sys.argv[1])
if(os.path.exists(sys.argv[1]):
  print("valid file :: { do something...}\n")
else:
  print("Invalid file path received :: { do nothing }\n") 

输出 :

File opened with this app :: psn_0_151589
Invalid file path received :: { do nothing }

希望有人知道如何获取使用任何应用程序打开的文件路径。

任何帮助将不胜感激。

答案1

Mac OS X 应用程序包不会将要打开的文件作为命令行参数接收。由于每个应用程序通常只有一个实例,因此这会限制打开更多文件。相反,它是在应用程序已运行时发送的消息。您收到的参数是进程序列号。更多信息请点击此处


您也可以将 Python 脚本包装在 Automator 应用程序的运行 Shell 脚本动作(#!/usr/bin/python即“shell”)。当您选择传递输入时作为参数,它们将在 中提供argv,请参阅示例代码:

截屏

相关内容