Python命令行参数
在 Python 中,可以通过多种方式获取命令行参数或用户输入的参数。以下是几种常见的方法及其示例代码。
1. 使用 sys.argv
获取命令行参数
sys.argv
是一个包含命令行参数的列表。第一个元素是脚本名称(即 sys.argv[0]
),后续元素是传递给脚本的参数。
示例代码
import sys
# 打印所有命令行参数
print(f"脚本名称: {sys.argv[0]}")
if len(sys.argv) > 1:
print("命令行参数:")
for i, arg in enumerate(sys.argv[1:], start=1):
print(f"参数 {i}: {arg}")
else:
print("未提供额外的命令行参数。")
运行示例:
python main.py arg1 arg2 arg3
输出示例:
脚本名称: main.py
命令行参数:
参数 1: arg1
参数 2: arg2
参数 3: arg3
2. 使用 argparse
模块解析命令行参数
argparse
是一个强大的模块,用于定义和解析命令行参数。它支持位置参数、可选参数、默认值、帮助信息等功能。
示例代码
import argparse
# 创建 ArgumentParser 对象
parser = argparse.ArgumentParser(description="示例程序:解析命令行参数")
# 添加位置参数
parser.add_argument("name", type=str, help="用户的名字")
# 添加可选参数
parser.add_argument("-a", "--age", type=int, default=18, help="用户的年龄 (默认: 18)")
parser.add_argument("-v", "--verbose", action="store_true", help="启用详细模式")
# 解析命令行参数
args = parser.parse_args()
# 使用解析后的参数
print(f"名字: {args.name}")
print(f"年龄: {args.age}")
if args.verbose:
print("详细模式已启用")
运行示例:
python main.py Alice -a 25 --verbose
输出示例:
名字: Alice
年龄: 25
详细模式已启用
3. 使用 input()
获取用户输入
如果需要在程序运行时动态获取用户输入,可以使用 input()
函数。
示例代码
# 获取用户输入
name = input("请输入你的名字: ")
age = input("请输入你的年龄: ")
# 输出结果
print(f"你好, {name}! 你今年 {age} 岁。")
运行示例:
请输入你的名字: Alice
请输入你的年龄: 25
输出示例:
你好, Alice! 你今年 25 岁。
4. 使用 configparser
读取配置文件
如果参数存储在配置文件中,可以使用 configparser
模块读取。
配置文件 (config.ini
) 示例
[user]
name = Alice
age = 25
示例代码
import configparser
# 创建 ConfigParser 对象
config = configparser.ConfigParser()
# 读取配置文件
config.read('config.ini')
# 获取参数
name = config.get('user', 'name')
age = config.getint('user', 'age')
# 输出结果
print(f"名字: {name}")
print(f"年龄: {age}")
输出示例:
名字: Alice
年龄: 25
5. 使用环境变量获取参数
如果参数存储在环境变量中,可以使用 os.environ
获取。
示例代码
import os
# 获取环境变量
name = os.getenv("USER_NAME", "Guest") # 默认值为 "Guest"
age = os.getenv("USER_AGE", 18)
# 输出结果
print(f"名字: {name}")
print(f"年龄: {age}")
设置环境变量:
export USER_NAME=Alice
export USER_AGE=25
运行示例:
python main.py
输出示例:
名字: Alice
年龄: 25
6. 使用第三方库 click
简化命令行参数处理
click
是一个流行的第三方库,用于创建命令行工具。它提供了更简洁的语法和更多的功能。
安装 click
pip install click
示例代码
import click
@click.command()
@click.option("--name", prompt="你的名字", help="用户的名字")
@click.option("--age", default=18, help="用户的年龄 (默认: 18)")
def main(name, age):
"""示例程序:获取用户信息"""
click.echo(f"你好, {name}! 你今年 {age} 岁。")
if __name__ == "__main__":
main()
运行示例:
python main.py --name Alice --age 25
输出示例:
你好, Alice! 你今年 25 岁。
7. 总结
根据你的需求选择合适的方法:
- 简单场景:
- 使用
sys.argv
或input()
。
- 使用
- 复杂场景:
- 使用
argparse
或click
处理命令行参数。
- 使用
- 配置文件:
- 使用
configparser
读取配置文件。
- 使用
- 环境变量:
- 使用
os.environ
获取环境变量。
- 使用