当从命令行调用Python 脚本程序,用户可能需要添加命令行参数,这些参数传递到脚本中。程序员可通过系统变量 sys.argv(“argv”是大多数习惯性命名,意思是参数向量)获取这些参数可用于。
按照惯例,sys.argv列表中的第一个元素是Python脚本文件名称,而剩下的元素则是用户调用脚本时传递的参数。
# cli.py
import sys
print(sys.argv)
$ python cli.py
=>['cli.py']
$ python cli.py fizz
=>['cli.py','fizz']
$ python cli.py fizz buzz
=>['cli.py','fizz','buzz']
这是另外一个使用argv的例子。我们首先去掉sys.argv初始元素,因为它里面包含脚本名称。然后我们合并剩下的参数到一个字符串,最后打印当前登录用户名和这个字符串(这样就可以模拟聊天程序了)。
import getpass
import sys
words = sys.argv[1:]
sentence = " ".join(words)
print("[%s] %s" % (getpass.getuser(), sentence))
这个算法通过迭代循环sys.argv的列表来手动解析非未知参数。方法是历遍整个列表中的元素。
argv =reversed(sys.argv)
targ = argv.pop()
while len(argv)>0:
if arg in('-f','--foo'):
print('seen foo!')
elif arg in('-b','--bar'):
print('seen bar!')
elif arg in('-a','--with-arg'):
arg = arg.pop()
print('seen value: {}'.format(arg))
arg = argv.pop()
联系客服