精华内容
下载资源
问答
  • 原标题:Python命令行神器 Click 快速上手导读:写 Python 的经常要写一些命令行工具,虽然标准库提供有命令行解析工具 Argparse,但是写起来非常麻烦,我很少会使用它。命令行工具中用起来最爽的就是 Click,它是 ...

    原标题:Python命令行神器 Click 快速上手

    导读:写 Python 的经常要写一些命令行工具,虽然标准库提供有命令行解析工具 Argparse,但是写起来非常麻烦,我很少会使用它。命令行工具中用起来最爽的就是 Click,它是 Flask 的团队 pallets 的开源项目。Click 只要很少的代码就可以优雅地创造一个命令行工具,它致力于将创建命令行工具的过程变的快速而有趣。

    百闻不如一试!

    作者:刘志军

    来源:Python之禅(ID:VTtalk)

    01 安装

    pip install Click

    02 使用

    创建 click_demo.py ,写一个最简单的函数

    importclick

    @click.command()

    defhello():

    click.echo( "Hello World!")

    if__name__ == "__main__":

    hello()

    运行:

    python click_demo.py

    Hello World!

    装饰器click.command()使函数秒变命令行工具,echo函数的作用等同于 print 函数。

    03 参数

    装饰器click.option()可以给命令行函数指定参数

    importclick

    @click.command()

    @click.option("--count", default=1, help="打印次数", type=int)

    defhello(count):

    """

    这是一个简单示例

    """

    fori inrange(count):

    click.echo( "Hello World!")

    if__name__ == "__main__":

    hello()

    —count:count是参数的名字

    default :参数的默认值

    type:给参数指定类型

    help:说明文档

    执行脚本的时候后面加上参数--help就可以查看说明文档。

    $ python click_demo.py --help

    Usage: click_demo.py [OPTIONS]

    这是一个简单示例

    Options:

    --count INTEGER 打印次数

    --help Show this message andexit.

    指定参数:

    >python click_demo.py --count 3

    Hello World!

    Hello World!

    Hello World!

    04 prompt

    有些命令行工具在运行的时候要求用户输入信息,可以给option装饰器指定prompt参数。

    importclick

    @click.command()

    @click.option("--count", default=1, help="打印次数", type=int)

    @click.option("--name", prompt="请输入名字", help="姓名")

    defhello(count, name):

    """

    这是一个简单示例

    """

    fori inrange(count):

    click.echo( f"Hello {name}!")

    if__name__ == "__main__":

    hello()

    $ python click_demo.py

    请输入名字: lzjun

    Hello lzjun!

    05 Group

    Click 很重要的一个特性就是它的分组功能,当一个命令行工具的逻辑已经非常复杂的时候,为了解耦,我们需要将不同的逻辑放在不同的命令中,这样既可以避免单个命令行工具函数臃肿。来看个例子:

    # db.py

    importclick

    @click.group()

    defdb():

    pass

    @click.command()

    @click.option("--name", help="用户名")

    defadd(name):

    """

    添加用户

    :param name:

    :return:

    """

    click.echo( f"add user {name}")

    @click.command()

    @click.option("--id", help="用户名")

    defdelete(id):

    """

    删除用户

    :param id:

    :return:

    """

    click.echo( f"delete user {id}")

    db.add_command(delete)

    db.add_command(add)

    if__name__ == "__main__":

    db()

    这是一个操作数据库DB的命令行工具,提供了添加用户和删除用户的命令行等其它操作,如果所有的业务逻辑全部写在一个函数,维护变得异常困难。

    @click.group装饰器把函数装饰成为一个Group对象,通过 Group 可以添加很多子命令。

    python db.py --help

    Usage: db.py [OPTIONS] COMMAND [ARGS]...

    Options:

    --help Show this message andexit.

    Commands:

    add 添加用户 :param name: : return:

    delete 删除用户 :param id: : return:

    从帮助文档中我们看到add和delete就是两个子命令。

    Flask 的命令行工具 "flask" 也提供有很多子命令,感兴趣的可以自己查看一下。

    Q:你会用这款神器了吗?

    转载 / 投稿请联系:baiyu@hzbook.com返回搜狐,查看更多

    责任编辑:

    展开全文
  • python命令行输入参数

    2020-08-05 16:29:49
    Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。 python 之 分割...
    1. Python中 sys.argv[]的用法简明解释
      Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。
    2. python 之 分割参数getopt
    展开全文
  • python 命令行输入参数介绍

    千次阅读 2017-12-26 13:20:12
    1.python内置方式import sys print "script is ", sys.argv[0] for i in range(1, len(sys.argv)): print "parameter is ", i, sys.argv[i]运行结果为:[machine@localhost zj]$ python parametertest.py nihao ma ...

    1.python内置方式

    import sys
    print "script is ", sys.argv[0]
    for i in range(1, len(sys.argv)):
        print "parameter is ", i, sys.argv[i]

    运行结果为:

    [machine@localhost zj]$ python parametertest.py nihao ma
    script is  parametertest.py
    parameter is  1 nihao
    parameter is  2 ma

    2.argparse模块
    注意,需要安装argparse模块,conda install argparse。

    >>> import argparse
    >>> parser = argparse.ArgumentParser()
    >>> parser.add_argument('--num', type=int,  default=10)
    _StoreAction(option_strings=['--num'], dest='num', nargs=None, const=None, default=10, type=<type 'int'>, choices=None, help=None, metavar=None)

    项目中使用如下:

    import argparse
    def parse_args():
        parser = argparse.ArgumentParser()
        parser.add_argument('--name', default='oys')
        parser.add_argument('--sex', type=int, default=1)
        args = parser.parse_args();
        return args
    if __name__ == '__main__':
        args = parse_args()
        print 'name is : %s .' % args.name
        print 'sex is : %s .' % args.sex

    执行效果如下:

    (tensorflow2)[machine@localhost zj]$ python parametertest.py 
    name is : oys .
    sex is : 1 .
    (tensorflow2)[machine@localhost zj]$ python parametertest.py --name zj --sex 0
    name is : zj .
    sex is : 0 .

    3.tensorflow FLAGS模块

    import tensorflow as tf
    
    tf.app.flags.DEFINE_string('nihaoma', 'question',"a question")
    tf.app.flags.DEFINE_integer('oys', 1,"1 biaoshi hao")
    
    FLAGS = tf.app.flags.FLAGS
    
    def main(_):
        print(FLAGS.nihaoma)
        print(FLAGS.oys)
    
    if __name__ == '__main__':
        tf.app.run()

    执行效果如下:

    (tensorflow2)[machine@localhost zj]$ python parametertest.py 
    question
    1
    (tensorflow2)[machine@localhost zj]$ python parametertest.py --nihaoma enen --oys 1
    enen
    1

    写这篇博文是自己在阅读GAN代码中没有发现参数解析过程,觉得奇怪就找了相关人员询问和查询,得知了一些内容,觉得有必要总结一下。欢迎指正!

    参考文献:
    1.https://www.cnblogs.com/saiwa/articles/5253713.html
    2.https://www.2cto.com/kf/201412/363654.html
    3.http://blog.csdn.net/leiting_imecas/article/details/72367937

    展开全文
  • xp系统,3.4.0Python pip install Pillow出现错误时 更新pip就可以了,python -m pip install --upgrade pip

    xp系统,3.4.0Python

    pip install Pillow出现错误时

    更新pip就可以了,python -m pip install --upgrade pip

     

    展开全文
  • Python命令行输入参数运行.py程序

    千次阅读 2018-12-17 14:07:02
    在运维过程中,有些时候需要向main函数中传递参数,以方便运维与测试,那么怎么向main函数中传入多个参数呢,下面以python3中的main函数为例,...「argv」是「argument variable」参数变量的简写形式,一般在命令行...
  • python程序需要配置密码时,密码部分防止泄露,所以需要进行加密。 import msvcrt def pwd_input(): """ 输入信息加密 """ chars = [] while True: ... return input("你很可能不是在cmd命令行
  • sys模块sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息,其中 sys.argv 可以获取命令行参数在Python交互式解释器中可以先导入sys模块 import sys,再输入 dir(sys) 查看sys模块所包含的全部程序...
  • Python命令行输入多行代码

    千次阅读 2020-03-11 16:45:37
    好多时候要在命令行里写多行python代码,之前一直不知道怎么弄,后来发现每行后面加上“;\”就可以了。
  • python命令行补全

    2017-11-11 13:33:58
    python命令行补全 大家都知道,在命令行界面输入命令时,是可通过tab键来补齐命令,这中设置十分方便,不用浪费较长时间在输入命令上。最近开始接触python,发现在python命令行下,使用tab键是无法补全命令的。我们...
  • 有时候想在命令行输入参数如 python try.py filenameA 教程:https://blog.csdn.net/yskyskyer123/article/details/80667861 如下是该教程中的部分代码 #option.py import argparse class Option():  def _...
  • pip 是 Python 包管理工具...实际上这是对pip的不理解,pip也是一个命令,这个命令不是python的内部命令,不能在python命令行模式下输入。 为此,我们输入ctlr+z 退出python命令行模式,然后再输入pip就可以了 ...
  • 很久很久以前,系windows平台下,用C语言写过一款贪食蛇游戏,cmd界面,用kbhit()函数实现非阻塞输入。系windows平台下用python依然可以调用msvcrt.khbit实现非阻塞监听。但系喺linux下面就冇呢支歌仔唱。 随手...
  • 本文实例讲述了python命令行参数用法。分享给大家供大家参考,具体如下: 在命令行下执行某些命令的时候,通常会在一个命令后面带上一些参数,这些参数会传递到程序里,进行处理,然后返回结果,在linux 下很多命令...
  • 在实际应用中,经常需要编写自己的命令行工具,来实现一些系统管理的功能。在本系列文章中,将依次介绍通过sys.argv、optparse、argparse模块来创建Python命令行工具,介绍如何整合Shell命令到Python命令行工具中。
  • Python命令行输入以下命令: >>> import sys >>> sys.path ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/...
  • 您可能感兴趣的文章:python的pytest框架之命令行参数详解(上)python获取命令行输入参数列表的实例代码Python 获得命令行参数的方法(推荐)Python解析命令行读取参数–argparse模块使用方法Python中的命令行参数...
  • 本文实例讲述了python读取命令行参数的方法。分享给大家供大家参考。具体分析如下:如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名...
  • python 命令行字体颜色

    2020-07-06 18:40:16
    python 命令行常用字体颜色 在平时工作中经常会使用python脚本编写一些程序或工具,经常需要在控制台输出一些信息,例如:请输入用户名、密码等。如果用户名不合法输出‘用户名不规范’等提示信息。但这样输出的字体...
  • python 命令行创建虚拟环境 cmd 打开命令提示符 找到自己想创建的位置路径 输入 python -m venv 创建的名称 例如: Microsoft Windows [版本 10.0.19042.685] (c) 2020 Microsoft Corporation. 保留所有权利。 C:\...
  • python命令行安装包

    千次阅读 2019-09-18 22:38:45
    直接在命令行输入pip instiall命令下载包会十分的慢,有时候都不能下完。 可以通过国内的镜像库来加快下载的速度。 命令:豆瓣源:pip install numpy -i https://pypi.doubanio.com/simple/ 清华源:pip install ...
  • python命令行调试无法使用上下左右键的...之后在python命令行输入import readline,有时候会报错libtinfo.so.6 cannot found shared ...,用find命令找一下系统有没有libtinfo.so这个文件,如果有,创建一个软链接,到l
  • 主要介绍了python获取从命令行输入数字的方法,涉及Python操作命令行输入的相关技巧,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,145
精华内容 3,658
关键字:

python命令行输入

python 订阅