python中sys.argv[]的用法简述
sys是Python的标准库,提供了对解释器使用或维护的一些变量的访问,以及对与解释器强交互的函数的访问。
sys.argv是用来传递给Python脚本的命令行参数列表。获得的参数是一个list,argv[0]代表的是脚本名(它取决于操作系统是否为完整路径名),argv[1]以及之后代表的是传入的参数列表。
sys官方释义请戳: link
下面通过一个简单的例子来解释sys.argv[]的用法:
sys.argv[0]:
import sys
# 定义一个函数,用来打印出sys.argv获取的参数内容
def printer(content):
print(content)
if __name__ == '__main__':
input_content = sys.argv[0]
printer(input_content)
以上代码的存储路径在我的电脑上为: /Users/apple/Desktop/test.py
运行以上代码,结果如下:
可以看到打印出来的内容是这个脚本的路径名,也就说明sys.argv[0]代表的是文件本身。
sys.argv[1]:
import sys
# 定义一个函数,用来打印出sys.argv获取的参数内容
def printer(content):
print(content)
if __name__ == '__main__':
input_content = sys.argv[1]
printer(input_content)
在命令终端中运行test.py文件并输入参数hello和hello world,结果如下
可以看到打印出来的内容是输入参数列表中索引为[1]的内容(hello)。输入的参数以空格区分,因此world索引是[2],不会被打印出来。
sys.argv[1:]:
import sys
# 定义一个函数,用来打印出sys.argv获取的参数内容
def printer(content):
print(content)
if __name__ == '__main__':
input_content = sys.argv[1:]
printer(input_content)
同理,sys.argv[1:]代表的是参数列表中索引[1]以及之后的全部内容,参数之间以空格区分,在终端中运行结果如下:
需要注意的是sys.argv[]传入的参数内容是以列表list形式存储的,如果需要其它形式如字符串str,数组array,可以进行转换