栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

shell向python传递参数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

shell向python传递参数

背景

为了便于记录每次执行代码时参数的设置,在shell脚本中调用python代码,并向其传递参数。

问题导入

shell代码

#!/bin/bash
name="xxx"
count=10
python -u click_demo.py --name ${name} --count=${count}

上面的shell脚本中,向python脚本click_demo.py传递了两个参数,name和count。
python脚本中怎么接收这两个参数呢?

方式一 通过click传递

click模块基本使用方法参考https://blog.csdn.net/weixin_38278993/article/details/100052961

import click

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name', help='The person to greet.')
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    for x in range(count):
        click.echo('Hello %s!' % name)


if __name__ == '__main__':
    hello()
方式二 argparse模块

python中argparse使用介绍参考https://blog.csdn.net/Blankit1/article/details/122510221?spm=1001.2014.3001.5501

import argparse
parser = argparse.ArgumentParser() ## 新建参数解释器对象
parser.add_argument('--count',type=int) ## 添加参数,注明参数类型
parser.add_argument('--name') ## 添加参数
args = parser.parse_args()### 参数赋值,也可以通过终端赋值
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    for x in range(count):
        print('Hello %s!' % name)

if __name__ == '__main__':
    hello(args.count,args.name) ## 带参数

注意上述两种方式中,hello函数调用是不同的,使用click模块时,hello不带参数,而使用argparse需要参数。
click版本的 hello 函数有两个参数:count 和 name,它们的值从命令行中获取。

方式三 sys模块

参考http://t.zoukankan.com/sixbeauty-p-4285565.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932110.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号