有些时候我们需要通过命令行将参数传递给脚本,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调试桥相关文档。