最直接的方式是使用sys.argv,适用于简单场景;更推荐使用argparse模块,适用于复杂场景。1. 使用sys.argv时,参数以列表形式存储,sys.argv[0]为脚本名,后续元素为传入参数,但所有参数均为字符串类型,需手动转换,且无默认值、无帮助信息、难以处理可选参数和错误,代码可读性差。2. 使用argparse模块可自动解析参数,支持类型转换、默认值、帮助信息、必需参数设定和标志参数处理,通过argumentparser定义描述和参数,add_argument设置参数属性,parse_args解析输入,能自动生成--help信息,提升脚本可用性。3. 最佳实践包括:优先使用argparse;提供清晰的description和help信息;使用有意义的参数名;指定type进行自动转换;设置default值;标记required参数;利用action='store_true'处理布尔标志;考虑subparsers管理子命令;使用pathlib.path处理路径;并在解析后进行业务逻辑验证,确保参数正确性。该方法完整解决了命令行参数解析的需求,并提升了脚本的健壮性和用户体验。

在Python脚本中获取命令行参数,最直接的方式是使用内置的
sys
argv
argparse
要从命令行获取参数,我们通常有两种主要方法,具体取决于你的需求复杂程度。
方法一:使用 sys.argv
立即学习“Python免费学习笔记(深入)”;
sys.argv
sys.argv[0]
sys.argv[1]
sys.argv[2]
# my_script.py
import sys
print(f"脚本名称: {sys.argv[0]}")
if len(sys.argv) > 1:
print(f"第一个参数: {sys.argv[1]}")
if len(sys.argv) > 2:
print(f"第二个参数: {sys.argv[2]}")
else:
print("没有提供额外的命令行参数。")
# 运行示例:
# python my_script.py hello world
# python my_script.py 123方法二:使用 argparse
我个人觉得,一旦你的脚本需要处理的参数多于一两个,或者需要类型校验、默认值,甚至想给用户一个友好的提示,
sys.argv
argparse
# advanced_script.py
import argparse
# 1. 创建 ArgumentParser 对象
parser = argparse.ArgumentParser(description='一个处理文件路径和次数的示例脚本。')
# 2. 添加参数
# add_argument() 方法定义了脚本期望的参数。
# --file 或 -f: 可选参数,表示文件路径,默认值为 'default.txt'
parser.add_argument('--file', '-f', type=str, default='default.txt',
help='要处理的文件路径 (默认: default.txt)')
# --count 或 -c: 可选参数,表示处理次数,类型为整数,默认值为 1
parser.add_argument('--count', '-c', type=int, default=1,
help='操作执行的次数 (默认: 1)')
# --verbose 或 -v: 标记型参数,如果存在则为 True,否则为 False
parser.add_argument('--verbose', '-v', action='store_true',
help='启用详细输出模式')
# 3. 解析命令行参数
args = parser.parse_args()
# 4. 使用解析后的参数
print(f"文件路径: {args.file}")
print(f"操作次数: {args.count}")
if args.verbose:
print("详细模式已启用。")
else:
print("详细模式未启用。")
# 运行示例:
# python advanced_script.py --file my_data.txt --count 5 -v
# python advanced_script.py -f another.log
# python advanced_script.py --helpsys.argv
sys.argv
sys.argv
sys.argv
int(sys.argv[1])
sys.argv
len(sys.argv)
--verbose
--output <file>
sys.argv
if
elif
sys.argv
sys.argv[N]
sys.argv[2]
为Python脚本创建用户友好的命令行帮助信息是提升脚本可用性的关键一步。这不仅仅是代码规范,更是一种用户体验,它让你的脚本变得“聪明”,能自我解释。
argparse
当你使用
argparse.ArgumentParser()
description
parser.add_argument()
help
例如,看回之前的
advanced_script.py
parser = argparse.ArgumentParser(description='一个处理文件路径和次数的示例脚本。')
parser.add_argument('--file', '-f', type=str, default='default.txt',
help='要处理的文件路径 (默认: default.txt)') # 这里的help信息很重要
parser.add_argument('--count', '-c', type=int, default=1,
help='操作执行的次数 (默认: 1)') # 这里的help信息也很重要
parser.add_argument('--verbose', '-v', action='store_true',
help='启用详细输出模式') # 以及这里的当用户在命令行中运行
python advanced_script.py --help
python advanced_script.py -h
argparse
description
add_argument
help
argparse
对我来说,好的命令行接口设计,和写一个清晰的API文档一样重要。以下是我在Python命令行参数解析方面总结的一些最佳实践:
argparse
argparse
ArgumentParser
description
add_argument
help
--help
--file-path
-f
type
argparse
type=int
type=float
type=bool
default
default
required=True
required=True
argparse
action
--verbose
action='store_true'
action='store_false'
subparsers
git clone
git commit
argparse
subparsers
pathlib.Path
type
Path
argparse
以上就是Python命令如何在脚本中获取命令行参数 Python命令参数获取的简单教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号