您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在jupyter / iPython Notebook中将命令行参数传递给argv

在jupyter / iPython Notebook中将命令行参数传递给argv

在四处查看之后,我发现了非常麻烦的自定义库,但是用几行代码解决了它,我认为这很漂亮。我使用nbconvert最终以html报告作为输出,该报告包含笔记本中的所有图形和减价,但是像往常一样通过最小的python包装器接受命令行参数:

python文件test_args.py(正常使用命令行参数):

import sys,os
IPYNB_FILENAME = 'test_argv.ipynb'
CONfig_FILENAME = '.config_ipynb'

def main(argv):
    with open(CONfig_FILENAME,'w') as f:
        f.write(' '.join(argv))
    os.system('jupyter nbconvert --execute {:s} --to html'.format(IPYNB_FILENAME))
    return None

if __name__ == '__main__':
    main(sys.argv)

笔记本包含:

import sys,os,argparse
from IPython.display import HTML
CONfig_FILE = '.config_ipynb'
if os.path.isfile(CONfig_FILE):
    with open(CONfig_FILE) as f:
        sys.argv = f.read().split()
else:
    sys.argv = ['test_args.py', 'input_file', '--int_param', '12']

parser = argparse.ArgumentParser()
parser.add_argument("input_file",help="Input image, directory, or npy.")
parser.add_argument("--int_param", type=int, default=4, help="an optional integer parameter.")
args = parser.parse_args()
p = args.int_param
print(args.input_file,p)

而且我可以像往常一样解析参数来运行python笔记本:

python test_args.py my_input_file --int_param 12

我倾向于将带有argparse调用的块粘贴到python包装器中,以便python脚本捕获命令行错误,并且-h正常工作。

python 2022/1/1 18:29:07 有509人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶