jupyter如何解析命令行参数argv

  参考资料:

  https://stackoverflow.com/questions/37534440/passing-command-line-arguments-to-argv-in-jupyter-ipython-notebook

  这个问题一直困扰了我很久,众所周知jupyter notebook非常利于调试--单步运行,随时Debug。但是受限于ipynb的运行效率,网上大多数的项目使用的都是.py脚本,并且非常贴心地给我们使用各种argparse配置好命令行参数,如下所示:

  但是问题来了,jupyter notebook在运行时有没有找我们要这些参数?显然没有,此时如果我们调用argparse的parse函数,就会不意外地报错,大概长下面这样:

  这下麻烦了,ipynb没办法正常解析命令行参数了。望着config文件里面作者设置好的数十行变量或路径,实在不想放弃啊,但是又不想放弃jupyer notebook方便的调试功能,于是在网上搜索了半天,终于发现了解决办法。办法其实也很简单,就是显式地使用python的sys包来配置好命令行参数:

  当当当当,完全没有报错。因此,使用配置sys.argv的方法完全可以实现解析命令行参数的效果,这样就可以完美复用作者写好的配置,不用操心自己弄配置了!需要注意的是argv的第一项是脚本文件名,不能缺省,否则parser会遗漏配置的。

posted @ 2021-08-09 10:49  思念殇千寻  阅读(771)  评论(0编辑  收藏  举报