读取从批处理文件传递到 python 脚本的字符串参数

我看过多篇关于传递字符串的帖子,但无法找到从批处理文件中读取传递给 python 脚本的字符串的好的解决方案。这是我的问题。


我正在从批处理文件调用 python 脚本并传递参数。


string_var = "123_Asdf"


bat 'testscript.py  %string_var%'

我在我的 python 代码中有以下内容。


import sys


passed_var = sys.argv[1]

当我运行上面的代码时,我总是看到下面的错误。


passed_var = sys.argv[1]

IndexError: list index out of range

有没有人见过这个问题?我只传递字符串并希望它作为我传递给脚本的第一个参数的一部分被读取。


POPMUISE
浏览 156回答 3
3回答

互换的青春

如果我已正确阅读您的问题及其格式,我认为您的.bat文件应为:Set string_var="123_Asdf""D:\BuildTools\tools\python27\python.exe" testscript.py %string_var%或者更好:Set "string_var=123_Asdf""D:\BuildTools\tools\python27\python.exe" testscript.py "%string_var%"%string_var%可以带或不带双引号传递where 。

大话西游666

你的批处理文件应该更简单一些,确保你的 PATH 设置正确,否则这将不起作用。python testscript.py [argument]

胡子哥哥

尝试这个:import sysfor x,parameter in enumerate(sys.argv):    print(x, parameter)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python