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学习\python3\python代码\day10>python sys模块.py --help
['sys模块.py', '--help']
这个python是用来测试的,运行的时候需要使用 python a.py port

D:\A-python学习\python3\python代码\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文件的时候传入的参数

posted @ 2019-01-13 22:21  denise1108  阅读(5675)  评论(0编辑  收藏  举报