zoukankan      html  css  js  c++  java
  • sys.argv用法简介

    Python3中的sys自带模块中有个argv的方法,这个方法其实作用很简单

    主要用在通过python执行xxx.py文件时获取其携带的参数列表。

    用一个例子来介绍或许更简单明了吧:

    创建一个argv_test.py文件:

    # _*_ coding: utf-8 _*_
    # @File : argv_test.py
    import sys
    
    message = sys.argv
    print(type(message))
    print("sys.argv => %s" % message)
    
    如果直接执行该文件:
    结果为:
    <class 'list'>
    sys.argv => ['G:/Project Files/Rabbit MQ/argv_test.py']

    可以看出sys.argv的值是一个list列表,由于我们是直接执行结果,并没有在运行这个py文件传参,所以这个列表就是字符串'G:/Project Files/Rabbit MQ/argv_test.py'

    既然是列表我们取索引试试:

    import sys
    
    message = sys.argv[0]
    print("sys.argv => %s" % message)
    
    结果:
    sys.argv => G:/Project Files/Rabbit MQ/argv_test.py

    如果取索引1的话,报错提示 list index out of range。

    也就是sys.argv取索引0,就是取得该py文件的绝对路径字符串

    当然sys.argv的用途应该是要得到执行文件时候的参数的,所以我们打开cmd,找到该文件位置,使用python3执行一下该文件,同时携带参数

    # @File : argv_test.py
    import sys
    
    message1 = sys.argv[0]
    message2 = sys.argv[1]
    message3 = sys.argv[2:]
    print("sys.argv[0] => %s" % message1)
    print("sys.argv[1] => %s" % message2)
    print("sys.argv[2:] => %s" % message3)
    # cmd执行py文件:
    G:Project FilesRabbit MQ
    >> python3 argv_test.py param1 param2 param3 param4 param5 sys.argv[0] => argv_test.py sys.argv[1] => param1 sys.argv[2:] => ['param2', 'param3', 'param4', 'param5']

    不知道大家发现一个问题没有?

    py文件自执行:sys.argv[0] = 此py文件的绝对路径

    使用cmd或者脚本执行py文件:sys.argv[0] = 该py文件的文件名(包含扩展名)

  • 相关阅读:
    006_01XML简介
    005_01文档对象模型DOM
    004_01浏览器对象模型BOM
    SpringBoot的学习【4.快速实现一个SpringBoo的应用】
    SpringBoot的学习【3.HelloWorld配置细节】
    年中总结
    由一次报错引发的对于Spring创建对象的理解
    SpringBoot的学习【2.分析HelloWorld的依赖】
    SpringBoot的学习【1.初学之HelloWorld】
    IllegalStateException
  • 原文地址:https://www.cnblogs.com/suguangti/p/12411494.html
Copyright © 2011-2022 走看看