Python中sys.argv[]用法

理解


  1. sys.argv[] :是一个程序外部的参数组成的列表;
  2. 程序外部的参数,即用户输入的参数,并非代码本身的内容;
  3. 列表的第一个元素,是程序本身,即第一个参数是程序文件的路径名称,之后才是外部传入的参数,可以有多个。

示例(test_argv.py)


  • 查看test_argv.py内容,不传入参数执行代码,默认第一个参数是程序本身
# 查看程序代码
XZ:learn xz$ cat test_argv.py 
#!/usr/bin/env python3
# test sys_argv

import sys
a=sys.argv
print(a[0])

# 不传入参数,执行代码
XZ:learn xz$ python test_argv.py
test_argv.py
  • 查看test_argv.py内容,传入多个参数执行代码,并打印参数列表
# 查看程序代码
XZ:learn xz$ cat test_argv.py 
#!/usr/bin/env python3
# test sys_argv

import sys
a=sys.argv
print(a)

# 传入的多个参数为一句话:what are you ?
XZ:learn xz$ python test_argv.py what are you ?
['test_argv.py', 'what', 'are', 'you', '?']
  • 查看test_argv.py内容,传入多个参数执行代码,打印第2个参数之后的参数
# 查看程序代码
XZ:learn xz$ cat test_argv.py 
#!/usr/bin/env python3
# test sys_argv

import sys
a=sys.argv
print(a[2:])

# 打印后3个参数
XZ:learn xz$ python test_argv.py a b c d
['b', 'c', 'd']


应用场景

  • 一个Python模块test.py,包含一个定义的方法:获取斐波那契数列
XZ:~ xz$ cat test.py 
import sys 

def fib(n):
    result = []
    a, b = 0, 1
    while a < n:
        result.append(a)
        a, b = b, a + b
    return result


if __name__ == "__main__":
    f = fib(int(sys.argv[1]))
    print(f)
  • 执行test.py 模块,并传入参数 1000
XZ:~ xz$ python test.py 1000
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]

你可能感兴趣的:(Python中sys.argv[]用法)