那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何讓Python程序參數輸入更像Linux命令

自然語言處理愛好者 ? 來源:自然語言處理愛好者 ? 作者:菊子皮 ? 2020-12-28 14:22 ? 次閱讀

背景

最近一直訓練模型,進行模型調參比較,但是隨著模型參數多起來了,想獲得不同參數模型結果也越來越麻煩。看看前輩以及github上開源項目的代碼后,感覺這個感覺學到了很多。讓你的python程序輸入參數更像Linux那樣輸入,之前使用sys.argv,看到這個之后感覺太low了。這個就是 Python 標準庫的一部分:Argparse[1]。那么下面讓我們看看他是多么方便。

1 入門操作

由于這個包是Python標準庫中的一部分,所以就不用安裝了,直接使用即可。下面結合文章argparse基本用法[2]和自己的理解書寫如下程序:

pIYBAF_ped-AEWh1AABVgwZNyw0775.jpg

運行方式:linux系統使用比較多的還是命令,這里我也在終端里運行程序,如下是使用默認參數運行:

01c0a8a6-4693-11eb-8b86-12bb97331649.png

無參數運行

有參運行如下:

01ecac30-4693-11eb-8b86-12bb97331649.png

有參運行

看起來是不是挺有意思的。在上面的代碼中,使用argparse.ArgumentParser構建一個參數解析器,其實也就是創建一個相關對象,description描述了這個解析器,在命令行中使用-h(--help)命令就可以看到,如下:

022a0364-4693-11eb-8b86-12bb97331649.png

幫助文檔

是不是很清晰。

使用這個參數解析器得有一些我們需要的參數,那么就使用parser.add_argument()方法去定義一些。上面的例子就是增加了兩個參數:name, job。其中'-n'、'--name'都表示一個參數,而default是運行程序時不輸入對應參數值所啟用的值。現在相信你對這個有一定的了解了。下面我們再深入一下。

2 挖掘argparse更多功能

當然,上面的內容能夠應付日常中一些任務。了解更多的內容,也會讓我們事半功倍。下面的內容參考了argparse簡要用法總結[3]部分內容,特此感謝。主要介紹parser.add_argument()中的其他參數,default就不再介紹了。

2.1 required:表示這個參數是否一定需要設置

如果設置了required=True,則在實際運行的時候不設置該參數將報錯,在上面的程序上添加如下代碼:

pIYBAF_pefKASLszAAANl8Zh6lU452.jpg

當不輸入值時,則有:

02ad7dd4-4693-11eb-8b86-12bb97331649.png

必要參數

2.2 type: 參數類型

命令參數是傳給其他功能模型使用,不同的功能模型則需要不同類型的數據輸入,可以通過設置type直接將輸入的數據轉換成對應類型的數據(前提輸入的數據格式就滿足轉換要求),修改need參數的代碼如下:

pIYBAF_pegSAJLLWAAAPsdueYo4869.jpg

運行查看:

02d5282a-4693-11eb-8b86-12bb97331649.png

指定參數類型

2.3 choices:參數值只能從幾個選項里面選擇

有時為了更加人性化提示用戶使用,可以提升用戶輸入哪些值,慢慢地感覺到了Linux的味道了。現在我們修改need參數的代碼如下:

pIYBAF_pehWAT7mCAAAVEW6XWcU234.jpg

使用-h命令查看修改后的樣子:

02feb8c0-4693-11eb-8b86-12bb97331649.png

幫助命令

可以看到,need參數的選擇項。具體效果,朋友們可以自行試試,這里不費篇幅展示了,以下是輸入選擇范圍外的結果。

0353e5a2-4693-11eb-8b86-12bb97331649.png

選擇范圍外結果

2.4 dest:修改程序內部獲取值方法

在命令行中輸入的命令是-ne等形式把參數傳入到程序,程序可通過其他屬性獲取對應參數值,就是dest,修改need參數如下:

o4YBAF_peimAMe9WAAAYOARjIWo842.jpg

運行:

039cc11e-4693-11eb-8b86-12bb97331649.png

獲取真實值

上面還修改打印語句為:

3 總結

argparse是一個全面的參數處理庫,功能比較強大,內容也比較多,暫時就介紹這么多吧。更多實際需要的功能,我們就根據需要查看官方文檔以及網上的其他資料吧。

參考資料

[1]Argparse: https://docs.python.org/zh-cn/3.7/howto/argparse.html

[2]argparse基本用法: https://blog.csdn.net/yy_diego/article/details/82851661

[3]argparse簡要用法總結: http://vra.github.io/2017/12/02/argparse-usage/

責任編輯:xj

原文標題:讓Python程序參數輸入更像Linux命令——argparse

文章出處:【微信公眾號:自然語言處理愛好者】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210409
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85040

原文標題:讓Python程序參數輸入更像Linux命令——argparse

文章出處:【微信號:NLP_lover,微信公眾號:自然語言處理愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Python Connector for InterBase連接解決方案

    適用于 InterBase 的 Python 連接器 Python Connector for InterBase 是一種可靠的連接解決方案,用于從 Python 應用程序訪問 Int
    的頭像 發表于 01-22 14:34 ?106次閱讀

    常用linux命令

    使用command A | command B | command C命令,將A命令產生的標準輸出作為B命令的標準輸入(注意只能接收前一個命令
    的頭像 發表于 01-20 14:26 ?117次閱讀

    Linux實時查看日志的四種命令詳解

    如何在Linux中實時查看日志文件的內容?那么有很多實用程序可以幫助用戶在文件更改或不斷更新時輸出文件的內容。在Linux中實時顯示文件內容的常用命令是tail
    的頭像 發表于 01-13 10:45 ?297次閱讀
    <b class='flag-5'>Linux</b>實時查看日志的四種<b class='flag-5'>命令</b>詳解

    詳解Linux sort命令之掌握排序技巧與實用案例

    linux系統使用過程中,提供了sort排序命令,支持常用的排序功能。 常用參數 sort命令支持很多參數,常用
    的頭像 發表于 01-09 10:10 ?223次閱讀

    Linux grep命令詳解

    Linux grep命令是一種非常常用的文本搜索工具,它可以在給定的文件中搜索匹配的字符串,并輸出匹配的行。grep是全稱“global search regular expression print”,可以識別正則表達式,并使用正則表達式進行搜索。
    的頭像 發表于 12-25 09:39 ?265次閱讀

    盤點Linux系統中的常見命令

    作為運維同學怎能不知道Linux系統中的lsmod、lsof、lspci、lsscsi命令呢,今天就來盤一盤她及實例。
    的頭像 發表于 12-03 09:48 ?364次閱讀
    盤點<b class='flag-5'>Linux</b>系統中的常見<b class='flag-5'>命令</b>

    Linux系統中shell命令解析

    shell是Linux系統的用戶界面,提供了用戶與內核交互的一種接口,它接收用戶輸入命令并到送到內核去執行,因此也被稱為Linux命令
    的頭像 發表于 11-05 15:40 ?379次閱讀

    華納云監視Linux磁盤IO性能命令:iotop,iostat,vmstat,atop,dstat,ioping

    以下介紹6個監視 Linux 磁盤IO性能的命令(工具),它們分別是iotop、iostat、vmstat、atop、dstat、ioping,以下將附上簡單的使用方法。 前言 磁盤IO
    的頭像 發表于 10-24 14:43 ?270次閱讀

    Linux實用命令大全

    Linux實用命令大全
    的頭像 發表于 10-23 13:50 ?306次閱讀
    <b class='flag-5'>Linux</b>實用<b class='flag-5'>命令</b>大全

    Linux lsof命令的基本用法

    linux 系統中,一切皆文件。通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。所以 lsof 命令不僅可以查看進程打開的文件、目錄,還可以查看進程監聽的端口等 socket 相關的信息。本文將介紹 lsof 命令
    的頭像 發表于 10-23 11:52 ?430次閱讀
    <b class='flag-5'>Linux</b> lsof<b class='flag-5'>命令</b>的基本用法

    shell基本介紹及常用命令之shell介紹

    命令。三、常用的shell命令Linux命令一般由三部分組成:Command [option] [parameter]。說明:一、[]部分中的內容是可選項;二、
    發表于 08-15 09:28

    Linux中cut命令的實用示例

    Linux command cut 用于文本處理。您可以使用此命令通過選擇列從文件中提取部分文本。
    的頭像 發表于 08-05 15:14 ?371次閱讀

    Linux的shutdown命令介紹

    并重啟,默認運行級別不能設為6,否則不能正常啟動。 2.命令格式shutdown [選項] [參數] 3.選項說明-c cancel,其他用戶可以取消目前正在執行的關機程序,或者Control-C終止
    發表于 04-08 06:12

    util-linux修復WallEscape漏洞,影響Linux系統wall命令使用

    WallEscape 主要影響“wall”命令操作,Linux 系統中的常規下,該指令被用作向系統所有登錄用戶的終端發布消息。然而在處理命令參數
    的頭像 發表于 03-29 14:35 ?1033次閱讀

    linux命令概述

    電子發燒友網站提供《linux命令概述.pdf》資料免費下載
    發表于 03-11 09:18 ?3次下載
    安泽县| 大发888ber| 新时代百家乐官网娱乐城| 金宝网| 百家乐筹码价格| 百家乐官网规律打法| 博九最新网址| 手机百家乐能兑换现金棋牌游戏| 百家乐官网赌场视频| TT百家乐官网现金网| 大发888官网游戏平台| 中国百家乐游戏| 百家乐官网网站可信吗| 太阳城开户| 威尼斯人娱乐场安全吗| 百家乐庄不连的概率| 大世界百家乐官网娱乐平台| 正阳县| 大发888真人娱乐场| 百家乐博彩通博彩网皇冠网澳门赌场真人赌博 | 大发888赢速通充值| 百家乐平台导航| 自贡百家乐官网赌场娱乐网规则| 百家乐官网游戏群号| 大发888常见断续| 百家乐二代理解| 择日自学24| 百家乐官网平注法攻略| 任丘市| 足球投注现金网| 太阳城真人娱乐城| 百家乐分析仪有真的吗| 新宝百家乐网址| 金城百家乐官网买卖路| 百家乐官网投注技巧建议| 鸿运娱乐| 大发888娱乐城官方lm0| 赌百家乐到底能赌博赢| 百家乐预测和局| 百家乐官网博娱乐赌百家乐官网的玩法技巧和规则 | 百家乐官网要怎么玩啊|