python - 双击一个文件以运行python脚本。如何获得该文件作为输入?

标签 python macos file input operating-system

我希望能够创建一个程序,该程序可以以我自己的扩展名结尾保存文本文件。之后,用户应该能够双击该文件以运行程序并打开该文件。

我需要知道如何使python程序成为用户双击时打开的默认程序,以及如何在程序开始运行时获取该文件。

python 2.7
Mac OS X 10.6和Windows 7

编辑:
举例来说,我正在制作一个绘画程序。用户想要保存他正在处理的文件。我的程序会将其保存为untitled.paint,稍后用户双击untitled.paint并期望我的程序打开该文件。

有没有办法让我告诉我的操作系统使用我的绘画程序打开所有以.paint结尾的文件。

我无法将其另存为.jpg,因为那样将无法保存图层或其他任何内容。

最佳答案

不了解OSX,但是在Windows中,您可以按照以下步骤进行操作:


创建一个批处理文件
选择要“自动”打开的类型的文件,然后在上下文菜单中使用“打开方式为...”将批处理文件选择为要使用的默认程序。
批处理文件将获取传递给参数1的“单击”文件,然后您可以将其作为参数传递给Python脚本-然后它将其作为sys.argv [1]接收。


使用扩展名“ .paint”的示例(使用假设的python脚本pypaint.py打开)可能会澄清一些问题:

run_paint.bat:
@echo off
echo 'clicked file is' %1
python path_to_pypaint.py %1

py_paint.py:
import sys
print 'opening', sys.argv[1]

关于python - 双击一个文件以运行python脚本。如何获得该文件作为输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9880130/

相关文章:

git .BACKUP .BASE .LOCAL .REMOTE 文件

python - 解码 Scapy ASN1 编码的 SSL/TLS 证书字段

python - 如何部署pyside2应用程序? -Qt方式

python - mock.patch.object(... 和 mock.patch(

c++ - Qt Creator 无法在 Mac 上开始调试

c - 如何在C中使用stdio在文件中正确移动查找指针

java - 如何从文本文档中预测连续值(时间)?

macos - 如何使我的程序在iBooks中表现得像Dictionary?

python - 使用 Opencv 和 python 获取 RTSP 流

c - 我怎么知道C中是否存在文件?