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. 创建批处理文件
  2. 选择您想要“自动”打开的文件类型,然后使用上下文菜单中的“打开方式...”选择批处理文件作为要使用的默认程序。
  3. 批处理文件将获取传递参数 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/

相关文章:

iphone - NSString initWithData 返回 null

python - 在无限 while 期间写入文件

java - 调用该方法并打印出我正在使用 netbeans 的信息时出现两个错误

swift - 二元运算符不能应用于两个 'NSWindowStyleMask' 操作数

python - Python 是否对列表的副本使用写时复制?

python - 使用日期逻辑创建假数据

python - 在特定索引之后将值添加到数据框列

c - MacOS 中的管道读取的字节总是太少(但 Linux 可以)

c# - 差异文件和 Streamwriter 类

Python 图像库 : Image is turned by 90 degree?