[英]Python magical main() signature like Perl 6
python 是否有任何方法可以輕松快速地制作 CLI 實用程序,而無需大量參數解析樣板?
在 Perl 6 中, MAIN
子程序的簽名會自動解析命令行參數。
有沒有辦法在沒有大量樣板的情況下在 Python 中做類似的事情? 如果沒有,最好的方法是什么? 我正在考慮一個函數裝飾器,它將執行一些內省並做正確的事情。 如果已經沒有什么像它了,我在想像下面這樣的東西。 這是個好主意嗎?
@MagicMain
def main(one, two=None, *args, **kwargs):
print one # Either --one or first non-dash argument
print two # Optional --arg with default value (None)
print args # Any other non-dash arguments
print kwargs # Any other --arguments
if __name__ == '__main__':
main(sys.argv)
Baker庫包含一些方便的裝飾器,可以根據方法簽名“自動”創建 arg 解析器。
例如:
@baker.command
def test(start, end=None, sortby="time"):
print "start=", start, "end=", end, "sort=", sortby
$ script.py --sortby name 1
start= 1 end= sortby= name
Simon Willison 的optfunc
模塊試圖提供您正在尋找的功能。
選擇opterator
模塊處理這個。
Python 具有用於執行此操作的getopts模塊。
最近我遇到了裝飾和簡化命令行處理的開始項目。
它似乎提供了許多您正在尋找的相同功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.