📌  相关文章
📜  在Python中将列表作为命令行参数传递

📅  最后修改于: 2022-05-13 01:55:36.989000             🧑  作者: Mango

在Python中将列表作为命令行参数传递

在操作系统的命令行 shell 中,在程序名称之后给出的参数称为命令行参数。 Python提供了处理这些类型参数的各种方法。其中之一是sys模块。

系统模块

模块是包含Python定义和语句的文件。 sys 模块提供了用于操作Python运行时环境的不同部分的函数和变量。该模块提供对解释器使用或维护的一些变量以及与解释器强交互的函数的访问。

系统.argv

sys.argv在Python中用于在运行时检索命令行参数。为了让程序能够使用它,它必须从“sys”模块中导入。如此获得的参数采用名为sys.argv的数组的形式。

注意: sys.argv[0]给出了程序的名称,下面的索引就像数组的成员一样工作。

方法:
该程序的名称是“cmdlist.py”。

  1. 使用命令行:考虑下面用 cmdlis.py 编写的代码
    import sys
      
      
    print("the name of the program is ", sys.argv[0])
    print("argument list :", sys.argv)
    

    输出:

    python-命令行

  2. 使用命令行调用列表
    import sys
      
      
    print ("the name of the program is ", sys.argv[0])
      
    a = sys.argv[1]
    print (a)
    

    输出:

    python-命令行

  3. 使用命令行调用的列表。
    sys.argv 是一个字符串数组。因此,传递给它的任何参数都是一个字符串,因此为了正确使用,我们必须将其转换为适当的列表形式。
    • 程序将列表作为命令行参数并将其转换为适当的列表形式
      import sys
        
        
      print("the name of the program is ", sys.argv[0])
        
      n = len(sys.argv[1])
      a = sys.argv[1][1:n-1]
      a = a.split(', ')
        
      for i in a:
          print(i)
      

      输出:
      python-命令行参数

    • 程序查找列表中所有成员的总和
      此外,如果不是字符串,请继续查找以将成员更改为所需的数据类型。
      import sys
        
        
      print ("the name of the program is", sys.argv[0])
        
      n=len(sys.argv[1])
      a=sys.argv[1][1:n-1]
      a=a.split(',')
        
      A = [int(i) for i in a]
        
      b = 0
        
      for i in A:
          b += i
      print("sum of all the list members is ", b)
      

      输出:

      python-命令行

  4. 使用通过命令行检索的多个列表。
    import sys
      
      
    print ("the name of the program is ", sys.argv[0])
      
    n = len(sys.argv[1])
    a = sys.argv[1][1:n-1]
    a = a.split(', ')
      
    A = [int(i) for i in a]
    b = 0
      
    for i in A:
        b += i
    print("sum of all the list members is ", b)
      
    n = len(sys.argv[2])
    c = sys.argv[2][1:n-1]
    c = c.split(', ')
      
    d = ""
      
    for i in c:
        d = d+i
      
    print ("sum of all the list members is ", d)
    

    输出:
    python-命令行