将文件扩展名关联到 python 脚本,以便我可以通过双击打开文件,在 windows
Associate file extension to python script, so that I can open the file by double click, in windows
我想做以下事情:
- 以类似 CSV 的格式保存数字数据,扩展名为“.foo”;
- 将“.foo”文件扩展名与一些 python 脚本相关联,该脚本依次打开 .foo 文件,读取其内容,并使用绘图库(最有可能是 matplotlib)绘制一些东西。
用例是:双击该文件,其各自的情节会立即弹出。
我想知道我应该如何编写 python 脚本才能做到这一点。
此外,windows "open with" 对话框只允许我选择可执行文件 (*.exe)。如果我选择"fooOpener.py",它不起作用。
这并不是真正的编程问题,但您需要做的是弄清楚如何将 Python 可执行文件放入打开数据文件的注册表项中。
例如,我创建了一个名为 opener.py
的小 Python 脚本,如下所示:
import sys
print(sys.argv)
input()
然后我创建了一个 testfile.foo
并使用该文件的 属性 对话框中的 "change" 按钮选择 opener.py
。 (如果单击浏览并将打开方式对话框的文件过滤器更改为 "All Files",则可以执行此操作。)
当然这不起作用(如您所见)。所以我打开 regedit
并搜索 opener.py
并在以下注册表项中找到它:
HKEY_CURRENT_USER\Software\Classes\Applications\opener.py\shell\open\command
此键的默认值为 "C:\opener.py" %1
。我把它改成了python "C:\opener.py" %1
。成功了!
长话短说,要正确执行此操作,您需要自定义编辑注册表。实际上设置文件关联比仅仅编辑那个键更复杂(您还必须指出 .foo
与 opener.py
关联)。
另一种方法是使用可用于该目的的几种工具之一将您的 Python 脚本转换为独立的可执行文件,或者用 C 语言编写一个启动脚本的小型可执行文件。
- 按windows键
- 输入命令
- 右键单击结果并选择“运行 作为管理员”
assoc .foo=foofile
ftype foofile="C:\Users\<user>\AppData\Local\Programs\Python\PYTHON~1\python.exe" "C:\<whatever>\fooOpener.py" "%1" %*
如果它是 .pyw
文件,请使用 pythonw.exe
(以防止生成 cmd window)。
如果你想使用现有的文件类型,你可以通过不分配任何东西来找到它的别名。例如,assoc .txt
returns .txt=txtfile
.
我想做以下事情:
- 以类似 CSV 的格式保存数字数据,扩展名为“.foo”;
- 将“.foo”文件扩展名与一些 python 脚本相关联,该脚本依次打开 .foo 文件,读取其内容,并使用绘图库(最有可能是 matplotlib)绘制一些东西。
用例是:双击该文件,其各自的情节会立即弹出。
我想知道我应该如何编写 python 脚本才能做到这一点。 此外,windows "open with" 对话框只允许我选择可执行文件 (*.exe)。如果我选择"fooOpener.py",它不起作用。
这并不是真正的编程问题,但您需要做的是弄清楚如何将 Python 可执行文件放入打开数据文件的注册表项中。
例如,我创建了一个名为 opener.py
的小 Python 脚本,如下所示:
import sys
print(sys.argv)
input()
然后我创建了一个 testfile.foo
并使用该文件的 属性 对话框中的 "change" 按钮选择 opener.py
。 (如果单击浏览并将打开方式对话框的文件过滤器更改为 "All Files",则可以执行此操作。)
当然这不起作用(如您所见)。所以我打开 regedit
并搜索 opener.py
并在以下注册表项中找到它:
HKEY_CURRENT_USER\Software\Classes\Applications\opener.py\shell\open\command
此键的默认值为 "C:\opener.py" %1
。我把它改成了python "C:\opener.py" %1
。成功了!
长话短说,要正确执行此操作,您需要自定义编辑注册表。实际上设置文件关联比仅仅编辑那个键更复杂(您还必须指出 .foo
与 opener.py
关联)。
另一种方法是使用可用于该目的的几种工具之一将您的 Python 脚本转换为独立的可执行文件,或者用 C 语言编写一个启动脚本的小型可执行文件。
- 按windows键
- 输入命令
- 右键单击结果并选择“运行 作为管理员”
assoc .foo=foofile
ftype foofile="C:\Users\<user>\AppData\Local\Programs\Python\PYTHON~1\python.exe" "C:\<whatever>\fooOpener.py" "%1" %*
如果它是 .pyw
文件,请使用 pythonw.exe
(以防止生成 cmd window)。
如果你想使用现有的文件类型,你可以通过不分配任何东西来找到它的别名。例如,assoc .txt
returns .txt=txtfile
.