sys.argv用法簡介


Python3中的sys自帶模塊中有個argv的方法,這個方法其實作用很簡單

主要用在通過python執行xxx.py文件時獲取其攜帶的參數列表。

用一個例子來介紹或許更簡單明了吧:

創建一個argv_test.py文件:

# _*_ coding: utf-8 _*_
# @File : argv_test.py
import sys

message = sys.argv
print(type(message))
print("sys.argv => %s" % message)

如果直接執行該文件:
結果為:
<class 'list'>
sys.argv => ['G:/Project Files/Rabbit MQ/argv_test.py']

可以看出sys.argv的值是一個list列表,由於我們是直接執行結果,並沒有在運行這個py文件傳參,所以這個列表就是字符串'G:/Project Files/Rabbit MQ/argv_test.py'

既然是列表我們取索引試試:

import sys

message = sys.argv[0]
print("sys.argv => %s" % message)

結果:
sys.argv => G:/Project Files/Rabbit MQ/argv_test.py

如果取索引1的話,報錯提示 list index out of range。

也就是sys.argv取索引0,就是取得該py文件的絕對路徑字符串

當然sys.argv的用途應該是要得到執行文件時候的參數的,所以我們打開cmd,找到該文件位置,使用python3執行一下該文件,同時攜帶參數

# @File : argv_test.py
import sys

message1 = sys.argv[0]
message2 = sys.argv[1]
message3 = sys.argv[2:]
print("sys.argv[0] => %s" % message1)
print("sys.argv[1] => %s" % message2)
print("sys.argv[2:] => %s" % message3)
# cmd執行py文件:
G:\Project Files\Rabbit MQ
>> python3 argv_test.py param1 param2 param3 param4 param5 sys.argv[0] => argv_test.py sys.argv[1] => param1 sys.argv[2:] => ['param2', 'param3', 'param4', 'param5']

不知道大家發現一個問題沒有?

py文件自執行:sys.argv[0] = 此py文件的絕對路徑

使用cmd或者腳本執行py文件:sys.argv[0] = 該py文件的文件名(包含擴展名)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM