有没有办法将python脚本设置为程序来打开一种文件? 一些参考:

问题描述

问题:

我目前正在研究一种使用简单的 Python 解释器的编程语言。解释器用一堆 if 语句遍历每一行。 我想使用的文件扩展名是 .ccp。 到目前为止我的进步。我希望计算机将 .ccp 文件识别为 CalcScript 文件,并使用脚本打开它。

我不想使用可以使用 text = open("filename.idk","r").read() 打开的文件名,我想打开一个像“普通”文件一样的文件。您在资源管理器中双击该文件,它会在 python 脚本中打开它。无论文件名如何。

我尝试过的:

  1. 修改设置中的认应用程序
  2. 修改注册
  3. 将我的 .py 文件转换为 .exe
  4. 搜索互联网

我的代码

https://github.com/AnonymousPixel/CalcScript

抱歉英语不好,如果有的话。

解决方法

总结我对这个问题的评论,您可以按照以下步骤来实现您的要求:

  1. 使用 sys.argv 访问命令行参数。例如,以下脚本将只打印给它的所有参数:
import sys

print("Given arguments: ",str(sys.argv))

让我们将其命名为 myprogram.py

然后您可以使用以下命令调用它(我认为):python myprogram.py arg1 arg2 arg3 它将运行并打印命令行参数。

请注意,第一个参数 (sys.argv[0]) 是脚本的路径。因此,arg1 将是 sys.argv[1]arg2 将是 sys.argv[2],依此类推。

我说使用 sys.argv 是因为据我所知,双击带有默认打开程序的扩展名的文件,会以文件路径作为参数打开该程序。

  1. 下一步是将您的 Python 脚本打包为可执行文件。例如here(这是一个重复的,您可以按照前面的问题查看更多示例),已经有人提出并回答了这个问题。我使用 PyInstaller 来测试它(以及在 Windows 操作系统上)。我的命令是这样的:
pyinstaller myprogram.py

... 它生成了一些文件夹和文件。具体而言,文件夹 dist\myprogram 包含可执行文件及其依赖项。然后您可以通过在 dist\myprogram 文件夹中双击它来运行您的程序。它应该弹出一个 CLI 窗口,打印参数(即只有程序的路径,因为我们没有任何其他调用它)并立即退出。或者您可以打开 CLI 窗口并使用如下命令运行它:

myprogram argument1 argument2 argumentN

(假设您当前的工作目录是 dist\myprogram)并且它确实会打印参数。

  1. 最后,您必须将其设置为默认打开带有 .ccp 扩展名的文件的程序。在 Windows 10 上,您可以通过以下方式执行此操作:

    1. 打开文件资源管理器
    2. 查找扩展名为 .ccp 的文件(或创建一个)。
    3. 右键单击它。
    4. 在弹出的对话框中点击属性
    5. 转到弹出对话框中的常规选项卡(如果您还没有在那里)。
    6. 打开方式:部分有一个按钮,上面写着更改。点击它。
    7. 选择对话框底部的更多应用
    8. 确保您已选中始终使用此应用打开 .ccp 文件复选框。
    9. 滚动到对话框底部并单击提示手动选择默认应用程序的蓝色文本,然后会弹出一个文件选择器。我不是在使用英语,所以准确翻译它有点困难(我按照一些在线页面实际查看了前面步骤的默认翻译)。
    10. 选择您的可执行文件作为默认值。
    11. 通过选择确定应用或其他任何要求来确认您的选择。

然后您还可以通过以下方式更改此扩展名:

Settings --> Apps --> Default Apps --> Choose default apps by file type.

一些参考:

  1. PyInstaller websiteintroductory manual
  2. Official page for step 3
  3. Unofficial page for step 3,a lot more detailed