在python命令行中输入解析参数作为变量?
Posted
技术标签:
【中文标题】在python命令行中输入解析参数作为变量?【英文标题】:Input parse argument as a variable in python command line? 【发布时间】:2021-01-18 10:24:21 【问题描述】:我正在尝试输入一个字符串变量作为解析参数。
使用以下行运行代码:
for i in range(0,5):
para=str(i)+"test.params"
!python test.py --model I3D_resnet50 --resume-params para
解析参数添加在test.py
:
parser.add_argument('--resume-params', type=str, default='default.params',
help='path of parameters to load from.')
但代码不起作用,即使我在 parse.add_argument
中添加 nargs='*'
。
解析参数可以输入变量吗?
【问题讨论】:
我不确定你想要达到什么目的 应该是nargs
,而不是ngars
。
@DeepSpace 它想用不同的para
字符串多次执行命令行。 @I'L'I 谢谢,已编辑
首先,您的test.py
在从shell 执行时是否按预期处理命令行?至于那个!python ...
循环,这是在哪里完成的?看起来像ipython/jupyter notebook
?
@hpaulj 我正在使用 Google Colab Shell
【参考方案1】:
我有一个与sys.argv
相呼应的小脚本:
In [173]: cat echo.py
import sys
print(sys.argv)
在ipython
会话中,我可以调用它:
In [174]: !python3 echo.py test commandline
['echo.py', 'test', 'commandline']
或使用para
变量:
In [175]: para = "test line"
In [176]: !python3 echo.py $para
['echo.py', 'test', 'line']
sys.argv 回显可以替换为工作中的argparse
解析器。
【讨论】:
非常感谢。如果我使用$para
而不是para
上面代码中的循环有效:-)以上是关于在python命令行中输入解析参数作为变量?的主要内容,如果未能解决你的问题,请参考以下文章