zoukankan      html  css  js  c++  java
  • python的sys.args使用

    一、sys 模块

    sys是Python的一个「标准库」,也就是官方出的「模块」,是「System」的简写,封装了一些系统的信息和接口。

    官方的文档参考:https://docs.python.org/2/library/sys.html
    中文版文档参考:http://xukaizijian.blog.163.com/blog/static/170433119201111625428624/

    二、sys.argv介绍和基本使用
    「argv」是「argument variable」参数变量的简写形式,一般在命令行调用的时候由系统传递给程序。这个变量其实是一个List列表,argv[0] 一般是“被调用的脚本文件名或全路径”,这个与操作系统有关,argv[1]和以后就是传入的系统命令参数。

    其实是一个从程序外部获取参数的入口,这个“外部”很关键,一般我们在命令行中运行。因为我们从外部输入的参数可以是多个,也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。

    下面总结一下:
    sys.argv[0]表示代码本身文件路径,所以参数从1开始.

    sys.argv[1]表示第一个命令行参数

    sys.argv[1:]表示从第一个命令行参数到输入的最后一个命令行参数

    sys.argv[1][2:] 表示取第一个命令行参数,但是去掉前两个字节

    三、实例

    import sys
    print(sys.argv)  #获取运行python文件的时候传入的参数,第1个参数,index是0
    #输出:['D:/A-python学习/python3/python代码/day10/sys模块.py']
    
    if len(sys.argv)>1: #如果参数大于1,证明给了参数
        if sys.argv[1]=='--help': #如果第2个参数是--help
            quit('这个python是用来测试的,运行的时候需要使用 python a.py port') 
            #quit表示运行完此句代码即退出,不继续运行下面的代码了
        else: #否则传入的是port并赋值给port
            port = sys.argv[1]
    else: #如果没有传入参数,则port默认是7878
        port = 7878
    
    import flask
    server = flask.Flask(__name__)
    
    @server.route('/')
    def index():
        return '<h1>首页</h1>'
    
    server.run(port=port)
    #以上代码输出结果是:
    ['D:/A-python学习/python3/python代码/day10/sys模块.py']
     * Serving Flask app "sys模块" (lazy loading)
     * Environment: production
       WARNING: Do not use the development server in a production environment.
       Use a production WSGI server instead.
     * Debug mode: off
     * Running on http://127.0.0.1:7878/ (Press CTRL+C to quit)

    也可以在pycharm里的Terminal中运行命令

    #在Terminal中写命令,先写了一个python sys模块.py --help,回车运行完成后,写了python sys模块.py 2345(传了port)
    
    D:A-python学习python3python代码day10>python sys模块.py --help
    ['sys模块.py', '--help']
    这个python是用来测试的,运行的时候需要使用 python a.py port
    
    D:A-python学习python3python代码day10>python sys模块.py 2345
    ['sys模块.py', '2345']
     * Serving Flask app "sys模块" (lazy loading)
     * Environment: production
       WARNING: Do not use the development server in a production environment.
       Use a production WSGI server instead.
     * Debug mode: off
     * Running on http://127.0.0.1:2345/ (Press CTRL+C to quit)

    或者在pycharm中选择填写参数

    sys.argv使用场景如,别人调用你的代码时,需要别人传参数(如端口号可以传使用人自己的端口号,这样网址的端口号就是他自己的端口号了),根据传的参数(如help)去执行对应的命令

    作用:是获取到运行python文件的时候传入的参数

  • 相关阅读:
    libv4l 库【转】
    Leap Motion颠覆操控体验的超精致手势追踪技术【转】
    嵌入式Linux下Camera编程--V4L2【转】
    C语言高级应用---操作linux下V4L2摄像头应用程序【转】
    通过摄像头设备采集一帧数据的例子程序(完整版)【转】
    V4L2 camera 驱动 capture测试程序【转】
    v4l2 spec 中文 Ch01【转】
    Video for Linux Two API Specification Revision 2.6.32【转】
    Video for Linux Two API Specification revision0.24【转】
    OpenCV实践之路——人脸检测(C++/Python) 【转】
  • 原文地址:https://www.cnblogs.com/denise1108/p/10264319.html
Copyright © 2011-2022 走看看