在Python的标准库中,sys
模块是一个常用而强大的工具,它提供了与Python解释器交互的函数和变量。
sys.argv 是获取运行python文件的时候命令行参数,且以list形式存储参数
sys.argv[0]表示代码本身文件路径
import sys print('sys.argv[0]:', sys.argv[0]) # .\main.py print('sys.argv[1]:', sys.argv[1]) # aa print('sys.argv[1:]:', sys.argv[1:]) # ['aa', 'bb', 'cc'] print('sys.argv:', sys.argv) # ['test1.py', 'aa', 'bb', 'cc'] print('type(sys.argv):', type(sys.argv)) # <class 'list'> print('len(sys.argv):', len(sys.argv)) # 4
python .\main.py aa bb cc
sys.argv[0]是当前所执行的脚本,并且输入什么就是什么,输入main.py就是main.py,输入./main.py就是./main.py
index 1以后的才是所传入的参数。用sys.argv[1:]可以获取到所有的参数,并且输出到一个列表里面。
sys.argv 其实就是一个从程序外部获取参数
的桥梁,这里所说的 外部
很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们需要先在终端执行脚本, 并从外部传入参数(可以是多个),所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[ ]
提取其中的元素。其第一个元素是程序本身,随后才依次是外部传入的参数。
总结:
sys.argv[]是一个列表
sys.argv[0]是被调用的脚本文件名或全路径
sys.argv[1:]之后的元素就是我们从程序外部输入的,而非代码本身的,想要看到它的效果,就要将程序保存,从外部运行程序并给参数,这也是我们在cmd里面运行的原因。