Python Script,args没有转移到Script

Python Script,args没有转移到Script,第1张

概述我有一个名为“ gcc_opt.pyw”的 Python脚本,我将其目录包含在Windows PATH环境变量中. 但是没有一个命令行参数传递给脚本.打印出sys.argv告诉我argv-list中只有文件名. 这个命令: gcc_opt HelloWorld.c -o HelloWorld.exe -shared 结果是 ["C:\\Scripts\\gcc_opt.pyw"] 你能告诉我为什么 我有一个名为“ gcc_opt.pyw”的 Python脚本,我将其目录包含在windows PATH环境变量中.

但是没有一个命令行参数传递给脚本.打印出sys.argv告诉我argv-List中只有文件名.

这个命令:

gcc_opt HelloWorld.c -o HelloWorld.exe -shared

结果是

["C:\Scripts\gcc_opt.pyw"]

你能告诉我为什么没有其他论点吗?

我不知道它是否重要,但是我已经将python.exe设置为执行.pyw文件的默认程序,因为我没有看到使用pythonw.exe的任何打印(为什么会这样).

解决方法 你没有获得参数的原因是因为你破坏了.py
关联,这样你可以双击这些文件在NotePad中打开它们,
然后打破.pyw协会来做.py应该做的事情.

简而言之,您忘记在Python.exe命令的末尾包含%*
您的“自定义”(受损).pyw关联的行.

ASSOC和FTYPE命令用于显示关联和文件类型,即
运行什么程序来处理具有特定扩展名的文件.这是
这些命令在我的系统上产生了什么:

C:\test>assoc .py.py=Python.fileC:\test>assoc .pyw.pyw=Python.NoConfileC:\test>ftype python.filepython.file="C:\Python27\python.exe" "%1" %*C:\test>ftype python.noconfilepython.noconfile="C:\Python27\pythonw.exe" "%1" %*

正常的.py关联运行python.exe和控制台窗口,以便您
可以看到print语句的输出.

正常的.pyw关联运行pythonw.exe而没有控制台窗口.

您可以在每个命令行的末尾看到,有一个%*.这就是发送的内容
命令的参数. (实际上,%1是第一个参数,%*
表示“所有剩余参数”.)

当您尝试在命令行运行python文件而不键入它
扩展或初始“python”命令,发生了一些事情.

首先,PATHEXT环境变量用于查找匹配的扩展名.
在你的情况下,它发现你的命令名称“gcc_opt”.PYW导致a
匹配文件.

然后查找.PYW文件的关联,找到文件类型
Python.NoConfile,在你的情况下被设置为“python.exe”(应该是
pythonw.exe). (您可以在HKEY_CLASSES_ROOT下的注册表中看到这些内容.)

然后,系统从找到的命令模板创建实际命令行
对于那个文件类型,在你的情况下可能是

"[your-python-path]python.exe" "%1"

这告诉它只使用第一个参数,你的python脚本名称
“gcc_opt.pyw”.

快速解决方法是将%*添加到该命令的末尾.

CORRECT解决方案是将事情恢复到正确的关联和打开Python文件,通过更标准的方法进行编辑(将图标拖放到NotePad,或者右键单击并使用NotePad编辑).

总结

以上是内存溢出为你收集整理的Python Script,args没有转移到Script全部内容,希望文章能够帮你解决Python Script,args没有转移到Script所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存