Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 直接调用带有参数的关联脚本_Python_Windows - Fatal编程技术网

Python 直接调用带有参数的关联脚本

Python 直接调用带有参数的关联脚本,python,windows,Python,Windows,如果在Windows控制台中执行此脚本(test.py): 比如: 我得到了预期的输出: ['test.py', 'my', 'args'] 但如果我直接这样称呼它: >test.py my args 我得到:['C:\\temp\\test.py']输出,就好像我没有传递任何参数一样。为什么? 供参考: 与讨论类似,您需要确保命令键设置正确。在我的Windows 10副本上,我发现我在两个位置将命令设置为“C:\Python27\python.exe“%1”%* HKEY_CLASS

如果在Windows控制台中执行此脚本(
test.py
):

比如:

我得到了预期的输出:

['test.py', 'my', 'args']
但如果我直接这样称呼它:

>test.py my args
我得到:
['C:\\temp\\test.py']
输出,就好像我没有传递任何参数一样。为什么?

供参考:

与讨论类似,您需要确保
命令
键设置正确。在我的Windows 10副本上,我发现我在两个位置将
命令设置为
“C:\Python27\python.exe“%1”%*

HKEY_CLASSES_ROOT\Python.CompiledFile\shell\open\command
HKEY_CLASSES_ROOT\Python.File\shell\open\command
我想首先要做的是检查这两个键。

与讨论类似,您希望确保
命令
键设置正确。在我的Windows 10副本上,我发现我在两个位置将
命令设置为
“C:\Python27\python.exe“%1”%*

HKEY_CLASSES_ROOT\Python.CompiledFile\shell\open\command
HKEY_CLASSES_ROOT\Python.File\shell\open\command

我想首先要做的是检查这两个键。

在这里查看此线程:cmd的
assoc
ftype
显示
HKLM\Software\Classes
中的系统定义,不是来自
HKCU\Software\Classes
的每用户设置,也不是
Classes
键中为
SystemFileAssociations
应用程序定义的默认值。它们也不会显示用户在这些设置中的选择,这些设置存储在
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
中。用户的选择是
ShellExecuteEx
实际使用的内容。在资源管理器中,使用“打开方式”对话框(选择另一个/始终使用)或控制面板“默认程序”配置此选项。此外,对于标准3.5安装,
Python.File
应使用py-launcher,它处理需要其他版本Python的脚本的Unix样式的shebang。如果启动器是为所有用户安装的,则它位于
%SystemRoot%
目录(例如“C:\Windows”)中,对于该目录,命令模板将是
C:\Windows\py.exe“%1”%*
。请参阅此线程:cmd的
assoc
ftype
显示
HKLM\Software\Classes
中的系统定义,不是来自
HKCU\Software\Classes
的每用户设置,也不是
Classes
键中为
SystemFileAssociations
应用程序定义的默认值。它们也不会显示用户在这些设置中的选择,这些设置存储在
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
中。用户的选择是
ShellExecuteEx
实际使用的内容。在资源管理器中,使用“打开方式”对话框(选择另一个/始终使用)或控制面板“默认程序”配置此选项。此外,对于标准3.5安装,
Python.File
应使用py-launcher,它处理需要其他版本Python的脚本的Unix样式的shebang。如果为所有用户安装了启动器,则它位于
%SystemRoot%
目录(例如“C:\Windows”)中,其命令模板为
C:\Windows\py.exe“%1”%*
>assoc | findstr .py=
.py=Python.File

>ftype Python.File
Python.File=C:\Python35\python.exe "%1" %*
HKEY_CLASSES_ROOT\Python.CompiledFile\shell\open\command
HKEY_CLASSES_ROOT\Python.File\shell\open\command