Skip to content

以下是一个详细的 Python 脚本示例,演示如何接收并处理从 CMD(命令行)传递的参数,涵盖多种参数类型和常见使用场景:


1. 基础示例:直接使用 sys.argv

python
# cmd_args_basic.py
import sys

if __name__ == "__main__":
    # sys.argv[0] 是脚本名称,后续元素为参数
    args = sys.argv[1:]  # 获取所有输入参数(排除脚本名)
    print("参数列表:", args)

CMD 调用

cmd
python cmd_args_basic.py arg1 arg2

输出

参数列表: ['arg1', 'arg2']

2. 进阶示例:使用 argparse 解析复杂参数

python
# cmd_args_advanced.py
import argparse


def main():
    # 创建解析器
    parser = argparse.ArgumentParser(description="一个支持复杂参数的示例脚本")

    # 添加参数规则
    parser.add_argument("input_file", help="输入文件路径")
    parser.add_argument("-o", "--output", help="输出文件路径(可选)", default="output.txt")
    parser.add_argument("-n", "--number", type=int, help="整数参数(必选)", required=True)
    parser.add_argument("--verbose", action="store_true", help="启用详细输出模式")

    # 解析参数
    args = parser.parse_args()

    # 使用参数
    print(f"输入文件: {args.input_file}")
    print(f"输出文件: {args.output}")
    print(f"数字参数: {args.number}")
    print(f"详细模式: {'开启' if args.verbose else '关闭'}")


if __name__ == "__main__":
    main()

CMD 调用

cmd
python cmd_args_advanced.py data.txt -n 100 --verbose

输出

输入文件: data.txt
输出文件: output.txt
数字参数: 100
详细模式: 开启

3. 参数类型与验证

示例:限制参数范围和类型

python
# cmd_args_validation.py
import argparse


def positive_int(value):
    ivalue = int(value)
    if ivalue <= 0:
        raise argparse.ArgumentTypeError("必须是正整数")
    return ivalue


parser = argparse.ArgumentParser()
parser.add_argument("--size", type=positive_int, required=True)
parser.add_argument("--color", choices=["red", "green", "blue"])  # 限制可选值
args = parser.parse_args()

print(f"尺寸: {args.size}, 颜色: {args.color}")

CMD 调用

cmd
python cmd_args_validation.py --size 5 --color green

输出

尺寸: 5, 颜色: green

4. 处理布尔标志

示例:开关参数

python
# cmd_args_boolean.py
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--enable", action="store_true", help="启用功能")
parser.add_argument("--disable", action="store_false", help="禁用功能", dest="flag")
args = parser.parse_args()

print(f"启用状态: {args.enable}")
print(f"禁用状态: {args.flag}")

CMD 调用

cmd
python cmd_args_boolean.py --enable

输出

启用状态: True
禁用状态: True  # 默认值未修改

5. 处理带空格的文件路径

示例:用引号包裹路径

python
# cmd_args_path.py
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--file", required=True)
args = parser.parse_args()

print(f"文件路径: {args.file}")

CMD 调用

cmd
python cmd_args_path.py --file "C:\My Documents\file.txt"

输出

文件路径: C:\My Documents\file.txt

6. 常见错误处理

错误:缺少必选参数

cmd
python cmd_args_advanced.py data.txt

输出

usage: cmd_args_advanced.py [-h] -n NUMBER [--verbose] input_file
cmd_args_advanced.py: error: the following arguments are required: -n/--number

解决方法

cmd
# 补充必选参数
python cmd_args_advanced.py data.txt -n 100

总结

场景Python 代码CMD 调用示例
基础参数接收sys.argv[1:]python script.py arg1
复杂参数解析argparse 模块python script.py --input data.txt
参数类型验证type=positive_int, choices=["red", "green"]python script.py --size 5 --color red
布尔开关action="store_true"action="store_false"python script.py --enable
文件路径处理使用引号包裹路径python script.py --file "path with space"

通过以上示例,可以覆盖绝大多数命令行参数处理需求。

✨ 网站运行时间: 3年11月15天 ❤️ 道阻且长,行则将至 - 微信号: heikedreamer