有没有办法将 python 脚本设置为打开某种文件的程序?
Is there a way to set a python script as program to open a type of file?
问题:
我目前正在研究一种编程语言,它使用简单的 python 解释器。解释器用一堆 if 语句遍历每一行。
我想使用的文件扩展名是 .ccp。
到目前为止我的进步。我想让电脑把.ccp
个文件识别成CalcScript
个文件,然后用脚本打开。
我不想使用可以使用 text = open("filename.idk","r").read()
打开的默认文件名,我想打开一个类似 'normal' 的文件。您在资源管理器中双击该文件,它会在 python 脚本中打开它。不管文件名是什么。
我试过的:
- 修改设置中的默认应用程序
- 修改注册表
- 正在将我的 .py 文件转换为 .exe
- 搜索互联网
我的代码:
https://github.com/AnonymousPixel/CalcScript
抱歉英语不好,如果有的话。
总结一下我对这个问题的评论,您可以按照以下步骤来实现您的要求:
- 使用
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
,因为据我所知,双击带有默认打开程序的扩展名的文件,将打开该程序,文件路径作为参数。
- 下一步是将您的 python 脚本打包成可执行文件。这已经被问过并回答过,例如 here(这是重复的,您可以在其中按照之前的问题查看更多示例)。我使用 PyInstaller 对其进行了测试(并在 Windows OS 上)。我的命令是这样的:
pyinstaller myprogram.py
... 它生成了一些文件夹和文件。具体来说,文件夹 dist\myprogram
包含可执行文件及其依赖项。然后,您可以通过在 dist\myprogram
文件夹中双击它来 运行 您的程序。它应该弹出一个 CLI window,打印参数(即只有程序的路径,因为我们调用它没有任何其他)并立即退出。或者您可以使用如下命令打开 CLI window 和 运行:
myprogram argument1 argument2 argumentN
(假设您当前的工作目录是 dist\myprogram
)它确实会打印参数。
最后,您必须将其设置为默认打开扩展名为 .ccp
的文件的程序。在 Windows 10,您可以通过以下方式执行此操作:
- 打开文件资源管理器。
- 查找扩展名为
.ccp
的文件(或创建一个)。
- 右击它。
- 在弹出的对话框中单击属性。
- 转到弹出对话框中的常规 选项卡(如果您尚未在该选项卡)。
- 在打开方式:部分有一个按钮显示更改。点击它。
- Select 对话框底部的更多应用程序。
- 确保选中始终使用此应用程序打开 .ccp 文件复选框。
- 滚动到对话框底部并单击提示手动选择默认应用程序的蓝色文本,这会弹出一个文件选择器。我不是 运行 会英语,所以要准确翻译它有点困难(我关注了一些在线页面,实际上看到了前面步骤的默认翻译)。
- Select 您的可执行文件作为默认值。
- 通过选择确定、应用或任何其他要求来确认您的选择。
然后我想您以后也可以通过以下方式更改此扩展名:
Settings --> Apps --> Default Apps --> Choose default apps by file type.
一些参考资料:
问题:
我目前正在研究一种编程语言,它使用简单的 python 解释器。解释器用一堆 if 语句遍历每一行。
我想使用的文件扩展名是 .ccp。
到目前为止我的进步。我想让电脑把.ccp
个文件识别成CalcScript
个文件,然后用脚本打开。
我不想使用可以使用 text = open("filename.idk","r").read()
打开的默认文件名,我想打开一个类似 'normal' 的文件。您在资源管理器中双击该文件,它会在 python 脚本中打开它。不管文件名是什么。
我试过的:
- 修改设置中的默认应用程序
- 修改注册表
- 正在将我的 .py 文件转换为 .exe
- 搜索互联网
我的代码:
https://github.com/AnonymousPixel/CalcScript
抱歉英语不好,如果有的话。
总结一下我对这个问题的评论,您可以按照以下步骤来实现您的要求:
- 使用
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
,因为据我所知,双击带有默认打开程序的扩展名的文件,将打开该程序,文件路径作为参数。
- 下一步是将您的 python 脚本打包成可执行文件。这已经被问过并回答过,例如 here(这是重复的,您可以在其中按照之前的问题查看更多示例)。我使用 PyInstaller 对其进行了测试(并在 Windows OS 上)。我的命令是这样的:
pyinstaller myprogram.py
... 它生成了一些文件夹和文件。具体来说,文件夹 dist\myprogram
包含可执行文件及其依赖项。然后,您可以通过在 dist\myprogram
文件夹中双击它来 运行 您的程序。它应该弹出一个 CLI window,打印参数(即只有程序的路径,因为我们调用它没有任何其他)并立即退出。或者您可以使用如下命令打开 CLI window 和 运行:
myprogram argument1 argument2 argumentN
(假设您当前的工作目录是 dist\myprogram
)它确实会打印参数。
最后,您必须将其设置为默认打开扩展名为
.ccp
的文件的程序。在 Windows 10,您可以通过以下方式执行此操作:- 打开文件资源管理器。
- 查找扩展名为
.ccp
的文件(或创建一个)。 - 右击它。
- 在弹出的对话框中单击属性。
- 转到弹出对话框中的常规 选项卡(如果您尚未在该选项卡)。
- 在打开方式:部分有一个按钮显示更改。点击它。
- Select 对话框底部的更多应用程序。
- 确保选中始终使用此应用程序打开 .ccp 文件复选框。
- 滚动到对话框底部并单击提示手动选择默认应用程序的蓝色文本,这会弹出一个文件选择器。我不是 运行 会英语,所以要准确翻译它有点困难(我关注了一些在线页面,实际上看到了前面步骤的默认翻译)。
- Select 您的可执行文件作为默认值。
- 通过选择确定、应用或任何其他要求来确认您的选择。
然后我想您以后也可以通过以下方式更改此扩展名:
Settings --> Apps --> Default Apps --> Choose default apps by file type.