gpt4 book ai didi

python - 将参数从批处理文件传递给 python 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 21:11:02 25 4
gpt4 key购买 nike

我想将参数从 test.bat 传递到 myscript.py

test.bat:

../path/to/file/myscript.py "myarg1" "myarg2"

myscript.py:

#!/usr/bin/env python2

import sys

if __name__ == '__main__':

print sys.version()
myarg1= sys.argv[1]
myarg2= sys.argv[2]

我使用 Windows 10 并将 pylauncher 配置为默认程序来执行 python 文件。我的用户和系统 PATH 变量中都有 python 2.7 和 3.6。 shebang 已得到处理,并按预期选择了 py2.7 解释器。

我面临的错误是参数未传递。错误日志如下:

2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:22:17) [MSC v.1500 32 bit (Intel)]
Traceback (most recent call last):
File "C:\full\path\to\file\myscript.py", line 12, in <module>
myarg1= sys.argv[1]
IndexError: list index out of range

一种解决方案:当我在 .bat 文件中指定 py 时,它可以正常工作并且参数可以正确读取

py ../path/to/file/myscript.py "myarg1" "myarg2"

如何在不将 py 添加到我的 .bat 脚本中的情况下完成这项工作?

更多信息 - 在 cmd shell 中运行这些:

assoc .py 给出 .py=Python.File

ftype Python.File 给出 Python.File="C:\WINDOWS\py.exe""%L"%*

最佳答案

必须在文件名末尾添加 .py 才能使其正常工作。您的 test.bat 文件应如下所示:

python myscript.py [arg1] [arg2]

如果 myscript.py 文件不在同一目录中,则将路径放入 myscript.py ENDING IN myscript.py。

关于python - 将参数从批处理文件传递给 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55059347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com