【问题标题】:Python: open a file *with* script?Python:用*脚本打开文件?
【发布时间】:2010-09-01 02:17:21
【问题描述】:

我有一个捆绑到应用程序中的 python 脚本(我在 Mac 上),并且将应用程序设置为能够打开 .zip 文件。但是当我说“用 bar.py 打开 foo.zip”时,我如何访问我传递给它的文件?

附加信息: 使用 tkinter。

什么是调试这个的好方法,因为没有终端可以传递信息?

【问题讨论】:

  • 检查控制台应用程序。它可能包含您要查找的所有信息。
  • 我找不到 python.log 或 tk.log 或类似的东西。那些会在哪里?

标签: python macos tkinter


【解决方案1】:

你应该使用 sys.argv[1]

task = sys.argv[1].decode('utf-8')
if task == u'uppercase':
    pass
elif task == u'openitems':
    item_paths = sys.argv[2:]
    for itempath in item_paths:
        itempath = itempath.decode('utf-8')

【讨论】:

  • 对此我有点不确定。它在我的机器上生成语法错误。它试图完成什么?
  • 想法是首先将通过«sys.argv»收集的输入解码为UTF-8。如果我们必须向 applescript 发送一个值,我们也必须这样做。将传递给 bar.py 的是一个命令,需要对其进行解码。随后可以处理命令,如上例所示。
  • 是的 .. 没错,我只是拿了说明它的代码片段,删除了其余部分。
  • sys.argv[1] 充满了 -psn_0_****** 所以无论如何都不起作用
【解决方案2】:

如果我没记错的话,它应该将文件名作为第一个参数传递给脚本 - sys.argv[1]

【讨论】:

  • 我也是这么想的……只是,不管我有没有指定文件,sys.argv[1] 都是用“-psn_0_#######”填充的