在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命令行中输入解析参数作为变量?的主要内容,如果未能解决你的问题,请参考以下文章

python项目输出到sys和命令行中的不一样

在python交互命令行中如何清屏

处理用户输入与显示数据------------(参数计数获取所有数据)

pycharm 怎么在命令行中输入参数进行调试

Python技法:用argparse模块解析命令行选项

在 Windows 命令行中使用批处理文件中的参数