1. 命令行参数处理的必要性
在开发Python脚本工具时,我们经常需要让程序能够接收外部传入的参数。比如一个数据处理脚本可能需要指定输入文件路径、输出目录、处理模式等配置项。这时候就需要用到命令行参数处理技术。
早期的Unix系统就已经形成了成熟的命令行参数规范,比如ls -l /tmp中的-l和/tmp就是两种典型的参数形式。Python作为一门广泛用于脚本开发的语言,自然也提供了多种处理命令行参数的方式。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. sys.argv基础用法解析
2.1 sys.argv的基本特性
sys.argv是Python内置模块sys提供的一个简单列表,它自动捕获并解析了命令行输入的所有参数。这个列表的第一个元素sys.argv[0]是脚本名称,后续元素依次是传入的参数。
python复制import sys
print(f"脚本名称: {sys.argv[0]}")
print(f"参数列表: {sys.argv[1:]}")
执行python script.py arg1 arg2会输出:
code复制脚本名称: script.py
参数列表: ['arg1', 'arg2']
2.2 实际应用示例
假设我们要开发一个简单的文件复制工具,使用sys.argv可以这样实现:
python复制import sys
import shutil
if len(sys.argv) != 3:
print("用法: python copy.py <源文件> <目标文件>")
sys.exit(1)
source = sys.argv[1]
destination = sys.argv[2]
try:
shutil.copy(source, destination)
print(f"文件已从 {source} 复制到 {destination}")
except Exception as e:
print(f"复制失败: {e}")
2.3 sys.argv的优缺点分析
优点:
- 无需额外导入模块,直接使用Python内置功能
- 实现简单,适合快速原型开发
- 对简单脚本足够使用
缺点:
- 参数顺序固定
