![](/img/trans.png)
[英]working from command prompt but not from IDLE GUI in python 2.7
[英]python 2.7 check if argument has been passed from command prompt
陷入困境。 我需要檢查在執行python腳本時是否已通過命令提示符傳遞了某個參數。
我將python文件作為python run.py -ip 127.0.0.1 -trigger 1
在我的python腳本上,我使用argparse
作為
parser = argparse.ArgumentParser()
parser.add_argument('-ip', '--ip')
args = parser.parse_args()
我如何檢查參數trigger
是否已傳遞。 如果參數中包含觸發器,則獲取觸發器的值並打印出來。
並且腳本應該能夠與以下所有命令一起運行
沒有觸發參數的python run.py -ip 127.0.0.1
。
沒有觸發參數值的python run.py -ip 127.0.0.1 -trigger
。
帶有所有參數及其值的python run.py -ip 127.0.0.1 -trigger 1
。
而且,執行命令是從自動化系統自動生成的,因此參數可以更多,例如,該命令可以是python run.py -ip 127.0.0.1 -trigger 1 prompt 0 base 5 .....
,並且-trigger 1 prompt 0 base 5
等會自動生成,因此我想在我的python腳本中實現parameter check
,以便它可以處理任意數量的傳遞參數。
在解析器中添加--trigger
參數
parser = argparse.ArgumentParser()
parser.add_argument('-ip', '--ip')
parser.add_argument('-t','--trigger', nargs='*')
args = parser.parse_args()
如果--trigger
不存在,則args.trigger
應該是默認值(例如None
)。
如果不帶參數,則args.trigger
將為[]
,空列表
否則,它將是所有后續字符串的列表。 從技術上講,[]情況也是如此。
使用nargs='?'
, const
可以定義,但是您只能給它一個參數。
nargs=argparse.REMAINDER
也應該起作用。 如果將--trigger
之后的所有內容都--trigger
,無論它看起來是否像一個標志('-')。 如果將字符串傳遞到另一個程序,那會很方便。 請參閱文檔中的示例
如果您現在想解析一些字符串,然后再處理其余字符串, parse_known_args
也很方便。 再次在文檔中。
nargs='*'
位置參數也很方便。 輸入字符串中的'--'
有助於將應解析的字符串與應視為簡單參數字符串的字符串分開。
argparse的一個最小示例,但是您應該閱讀該教程 :
#!/usr/bin/python
import argparse
parser = argparse.ArgumentParser(description='Check for trigger')
parser.add_argument('-trigger', help='trigger value')
args = parser.parse_args()
if args.trigger is not None:
print("trigger value: {}".format(args.trigger))
您將獲得輸出:
○ → ./trigger.py
○ → ./trigger.py -trigger=
trigger value:
○ → ./trigger.py -trigger 1
trigger value: 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.