剛開始使用這個參數的時候,很不明白其含義.網上搜索不少都是貼的官網上面的一則實例,說看懂,就明白.但是,我看不懂.如今在回頭看這個參數使用,並非很麻煩.python
舉幾個小例子就明白了.shell
建立一個腳本,內容以下編程
1 #conding:utf-8 2 import sys #導入sys模塊 3 print(sys.argv[0]) # 打印sys.argv的第0個參數
來運行一下這個腳本,咱們隨便給他點參數,1個,2個,3個或更多都行.函數
1 $ python3.6 1234.py a b c d e f 2 1234.py
得出結果就顯示當前腳本名,這裏咱們就能夠得出第一個結論.索引
sys.argv[0] 返回是的腳本utf-8
如今咱們修改一下腳本, 內容以下字符串
1 #conding:utf-8 2 import sys #導入sys模塊 3 print(sys.argv[1]) # 打印sys.argv的第1個參數
執行以下import
1 $ python3.6 1234.py a b c d e f 2 a
得出結果就是第一個參數的值.經過這樣類推,咱們就是知道sys.argv參數的效果了.搜索
返回腳本自己的名字及給定腳本的參數.程序
瞭解shell腳本編程的能夠這樣理解這些參數,sys.argv[0] 就是shell 腳本中的basename ,而sys.argv[1]....就是shell中的$1,$2.....
sys.argv也支持python字符串中的切片,咱們仍是先修改代碼
示例1:
1 #conding:utf-8 2 import sys #導入sys模塊 3 print(sys.argv[1:]) # 打印sys.argv的第1個參數及其之後全部參數,返回的值是一個list
結果以下:
$ python3.6 1234.py a b c d e f ['a', 'b', 'c', 'd', 'e', 'f']
示例2:
1 #conding:utf-8 2 import sys #導入sys模塊 3 print(sys.argv[1:3]) # 打印sys.argv的第1個參數到第三個參數,不包含第三個參數,返回的值是一個list
結果以下:
1 $ python3.6 1234.py a b c d e f 2 ['a', 'b']
示例3:
#conding:utf-8 import sys #導入sys模塊 print(sys.argv[1:5:2]) print(sys.argv[-1]) print(sys.argv[::-1])
結果以下
1 $ python3.6 1234.py a b c d e f 2 ['a', 'c'] 3 f 4 ['f', 'e', 'd', 'c', 'b', 'a', '1234.py']
上面示例使用了字符串的切片方法,須要先了解字符串的切片知識.
經過如上示例,應該明白sys.argv的使用和暫時的結果.
sys.argv就是將程序自己和給程序參數返回一個list,這個list中的索引爲0的就是程序自己.所以裏面的給sys.argv的參數就是list索引.
這個函數是咱們寫python腳本中最經常使用的一個函數.