有些時候我們需要通過命令行將參數傳遞給腳本,C語言中有個getopt()方法,python中也有個類似的命令行參數解析方法getopt()。python也提供了比getopt()更簡潔的argparse方法。另外,sys模塊也可以實現簡單的參數解析,本文將對這3種命令行參數解析方法簡要介紹。
sys.argv是傳入的參數列表,sys.argv[0]是當前python腳本的名稱,sys.argv[1]表示第一個參數,以此類推。
命令行運行:
可以看到傳入的參數通過sys.argv來獲取,它就是一個參數列表。
python的getopt與C語言的的getopt()函數類似。相比於sys模塊,支持長參數和短參數,並對參數解析賦值。但它需要結合sys模塊進行參數解析,語法格式如下:
短參數為單個英文字母,如果必須賦值需要在後面加英文冒號( : ),長參數一般為字元串(相比短參數,更能說明參數含義),如果必須賦值需要在後面加等號( = )。
命令行運行:
注意:短參數(options)和長參數(long_options)不需要一一對應,可以任意順序,也可以只有短參數或者只有長參數。
argparse模塊提供了很多可以設置的參數,例如參數的默認值,幫助消息,參數的數據類型等。argparse類主要包括ArgumentParser、add_argument和parse_args三個方法。
下面介紹這三個函數的使用方法。
argparse默認提供了 -h | --help 參數:
命令行運行:
下面列出部分參數:
下面來添加參數:
命令行運行:
parse_args() 方法用於解析參數,在前面的示例代碼中使用parse_args方法來提取參數值,對於無效或者錯誤的參數會列印錯誤信息和幫助信息:
命令行運行:
本文介紹了Python的三種命令行參數解析方法sys.argv、getopt和argparse,可以根據自己的需要進行選擇,getopt和argparse兩種方法相比來說,建議選擇argparse,代碼量更少更簡潔。更詳細的使用方法參考官方文檔:
--THE END--
TCC編譯器源碼閱讀筆記:命令行選項分析與環境變數處理
命令行選項分析: 核心函數:tcc_parse_args 是 TCC 命令行選項分析的核心函數。 選項描述:該函數通過 TCCOption 結構的數組描述所有支持的選項,使用 FlagDef 結構的數組描述二級選項。 分析過程:tcc_parse_args 函數遍歷命令行參數,根據 TCCOption 數組中的選項描述進行分析。分析過程中,使用局部變數查找當前分析的選項、選項值,並執行特定命令行參數的邏輯。 存儲結果:分析結果存儲在 TCCState 結構的相關欄位中,該結構用於匯總編譯數據信息。 返回值:tcc_parse_args 通過返回值指示命令行要求的後續功能,並通過三級指針更新指向命令行參數數組首項的指針變數內容。 基礎設施:TCC 提供了一系列基礎設施函數,如 tcc_strp、strstart 等,用於輔助命令行選項分析。
環境變數處理: 主要環境變數:TCC 主要使用 C_INCLUDE_PATH、CPATH 和 LIBRARY_PATH 環境變數。 作用:這些環境變數分別用於提供頭文件搜索目錄和庫文件搜索目錄。 處理函數:set_environment 函數負責將這些環境變數中的路徑添加到 TCCState 結構的相關欄位中。
其他相關處理: 文件相關處理:涉及路徑拆分、添加包含路徑、添加系統包含路徑、添加庫路徑和設置庫路徑等功能。 選項分析實現:TCCOption 結構描述選項名稱、ID 和特性,FlagDef 結構描述二級選項的偏移、特性和名稱。set_flag 函數根據選項名稱和描述數組設置二級選項的值。
通過這些機制,TCC 能夠有效地解析命令行選項和環境變數,從而靈活地控制編譯過程。
Ⅲ Android 開發筆記 | ADB調試命令
ADB,全稱為Android Debug Bridge,是集成在Android SDK中的調試工具,通過在電腦端運行ADB,可以方便地對連接的Android設備進行調試。功能覆蓋命令行運行、文件傳輸、應用安裝與卸載等。
若在電腦命令行輸入adb提示未找到命令,則需將adb.exe所在目錄加入環境變數。adb.exe位於SDK目錄下的platform_tools目錄下,例如路徑為C:\Users\Evan\AppData\Local\Android\Sdk\platform-tools。
常用命令包括:
1. 查看設備:在Android Studio中打開虛擬機,或通過USB連接設備,輸入命令查看連接設備。連有多台設備時,需通過-s指定設備。例如打開手機命令行的命令。
2. 打開Android端命令行:通過-s指定設備後,進入Android端命令行,可使用Linux命令,如ls、cd、cat、ps等。
3. 發送和拉取文件:使用adb push將電腦端文件發送到Android端,adb pull則從Android端拉取文件至電腦端。
4. 安裝和卸載應用:可執行adb install和adb uninstall命令。
5. 獲取root許可權:通過特定命令實現。
6. 重啟進入loader模式:實現設備特定操作。
常用Shell命令包括:
1. 查看電量:執行特定命令。
2. 關機:執行特定命令。
實現用戶界面投屏:使用scrcpy工具,可以在電腦端打開ADB設備的用戶界面。
更多參考資料,可查閱Android調試橋相關文檔。