跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Python脚本参数接收_sys与argparse解析【指导】

sys.argv适合简单场景,argparse更适合正式项目;前者仅提供原始参数列表,需手动解析和校验,后者支持自动帮助、类型检查、默认值及子命令等高级功能。 Python脚本接收命令行参数,
sys.argv
适合简单场景,
argparse
更适合正式项目——它自动处理帮助信息、类型校验、参数组合和错误提示。 用
sys.argv
快速获取原始参数
sys.argv
是一个列表,
argv[0]
是脚本名,后续元素是传入的字符串参数。它不解析结构,也不做类型转换,适合写一次性小工具或调试时快速取值。 直接访问索引即可:比如
python script.py input.txt -v
中,
sys.argv[1]
是
"input.txt"
,
sys.argv[2]
是
"-v"
需手动判断参数是否存在、是否符合预期格式,否则容易触发
IndexError
或类型错误 不支持
--help
、默认值、选项分组等特性,也不校验参数合法性 用
argparse
规范化定义和解析参数
argparse
是 Python 标准库 中推荐的参数解析模块,适用于需要可维护性、可读性和用户友好性的脚本。 声明式定义参数:用
add_argument()
明确指定名称、类型(
type=int
)、是否必需(
required=True
)、默认值(
default="log.txt"
)等 自动支持短选项(
-f
)、长选项(
--file
)、位置参数、可选参数、互斥组(
add_mutually_exclusive_group()
) 调用
parser.parse_args()
后返回命名空间对象,属性名即参数名(如
args.input
),无需索引操作 输入
--help
或参数错误时,自动输出清晰的帮助文本,无需额外 编码 常见搭配与实用技巧 实际使用中,常结合两者优势或补充功能: php版微信js-sdk支付接口类 php版微信js-sdk支付接口类 下载 立即学习 “ Python免费学习笔记(深入) ”; 位置参数 + 可选参数混合:例如
python convert.py source.json --output target.yaml --format yaml
支持子命令:用
add_subparsers()
实现类似
git commit
、
git push
的多模式脚本 从 配置文件 或 环境变量 回退:
argparse
解析后,可用
os.getenv()
或
configparser
做兜底 自定义类型函数:传入
type=valid_date
,在解析阶段就校验日期格式并抛出易懂错误 什么时候该选哪个? 判断依据主要是脚本用途和协作需求: 单人临时脚本、测试用例、CI 中简单调用 →
sys.argv
足够轻量 要交付给他人、需文档化、可能频繁更新参数、涉及多个选项组合 → 必须用
argparse
已有老脚本用
sys.argv
,但开始出现
if len(sys.argv) < 3:
这类硬编码判断 → 是重构为
argparse
的明确信号

相关文章