从带有参数的双击快捷方式运行Python文件

从带有参数的双击快捷方式运行Python文件,python,windows,Python,Windows,在Windows上,我想创建一个带参数运行的Python脚本的桌面快捷方式。我已将.py文件的默认双击行为配置为使用Python 3.8打开,因此它无需参数即可正常工作。但是,当我使用Windows快捷方式传递参数时,Python无法识别它们。例如,此代码: import sys print(sys.argv) input() 我创建了一个桌面快捷方式,目标是:C:\test.py“some text”。运行此命令只打印脚本的名称。sys.argv不是一个带有['name',Argument1

在Windows上,我想创建一个带参数运行的Python脚本的桌面快捷方式。我已将
.py
文件的默认双击行为配置为使用Python 3.8打开,因此它无需参数即可正常工作。但是,当我使用Windows快捷方式传递参数时,Python无法识别它们。例如,此代码:

import sys
print(sys.argv)
input()

我创建了一个桌面快捷方式,目标是:
C:\test.py“some text”
。运行此命令只打印脚本的名称。

sys.argv不是一个带有['name',Argument1,Argument2]的列表吗? 所以你应该试试

print(sys.argv[1])

我用一种我发现有效的方法来回答我自己的问题,但我真的不喜欢它。这样,当您升级到较新版本的Python时,它将中断,如果我有许多快捷方式,我将不得不编辑所有快捷方式。我想使用Windows内置的“双击”功能来保存首选的默认opener程序

更改快捷方式目标=
C:\Program Files\WindowsApps\Python…\python3.8.exe test.py“some text”


将快捷方式“开始于”更改为包含代码的文件夹。

这不是必需的,因为列表可以作为字符串打印。这不是必需的。只需确保python38文件夹中的python.exe打开了.py文件。快捷方式的目标示例:
C:\tests\test_args.py“test bla”
。输出:
['C:\\Python38\\test\u args.py','test bla']
好的,谢谢。如果我将“打开方式”应用程序更改为python.exe,它就会工作。在我使用Python3.8之前,它不起作用。我不知道有什么区别。不幸的是,导入不能以这种方式工作…在“打开方式”对话框中,不要浏览到需要接受命令行参数的任何关联的可执行文件。它不会使用包含命令行参数的
%*
的模板命令创建ProgId。您应该从列表中选择已安装的“Python”应用程序,该应用程序使用已安装的“Python.File”ProgId。如果安装了launcher(默认情况下是这样),它将有一个Python图标覆盖在正在发射的火箭/航天飞机上。这个ProgId使用启动器来支持脚本shebangs,还设置了一个shell拖放处理程序来将文件拖放到脚本图标上。