详解用Python处理Args的3种方法

程一诺
程一诺
发布时间:2026-10-14| 3人浏览过
原创

本文详细介绍Python中处理命令行参数的三种常用方法:直接使用sys模块访问argv、通过sys传递单个大参数字典,以及使用功能完善的argparse模块。文章对比了各方法的适用场景与实现细节,帮助开发者根据实际需求选择最合适的参数解析方案。

sys 模块

Python 内置的 sys 模块提供了 argv 属性,用于获取命令行传入的参数。当通过终端执行 main.py 脚本时,sys.argv 会返回一个包含所有命令行参数的列表。该列表的第一个元素始终是脚本本身的路径,后续元素依次为传入的参数值。

以下是一个使用 sys 模块处理参数的 main.py 示例代码。


import sys
list_of_arguments = sys.argv
print(list_of_args[0]) 
print(list_of_args[1]) 
print(list_of_args[2]) 
print(list_of_args[3])

在命令行中执行该脚本时,需按如下格式传入参数:


python main.py first_arg "[second_arg]" "{\"arg\": 3}"

执行后终端输出的结果如下所示:

test.py first_arg [second_arg] {"arg": 3}

带有一个大参数的 sys 模块

这是一种为 Python 代码提供参数的简单而强大的方法。你不需要提供按空格分隔的大量参数,而是提供一个单一的“大”参数。这个大参数是一个字符串字典,其中 dict-keys 表示参数名称,dict-value 表示相应的值。

以下是一个使用 sys 模块处理单个大参数字典的 main.py 示例代码。


import sys
import ast
raw_arguments = sys.argv[1]
 
print(raw_arguments)
arguments = ast.literal_eval(raw_arguments)
 
print(arguments['name']) # John
print(arguments['surname']) # Doe
print(arguments['age']) # 22

在命令行中执行该脚本时,需按如下格式传入参数:


python main.py "{\"name\": \"John\", \"surname\": \"Doe\", \"age\": 22}"

执行后终端输出的结果如下所示:

{"name": "John", "surname": "Doe", "age": 22} John Doe 22

argparse 模块

如果想为你的应用程序提供适当的命令行界面,则 argparse 是你需要的模块。

这是一个全面的模块,提供了现成的参数解析、帮助消息和误用参数时自动抛错。

要充分利用 argparse 提供的功能,需要花费一些时间来掌握。现在先然我们来考虑以下 main.py 示例:


import argparse
parser = argparse.ArgumentParser(description='Personal information')
parser.add_argument('--name', dest='name', type=str, help='Name of the candidate')
parser.add_argument('--surname', dest='surname', type=str, help='Surname of the candidate')
parser.add_argument('--age', dest='age', type=int, help='Age of the candidate')
args = parser.parse_args()
print(args.name)
print(args.surname)
print(args.age)

在初始化 ArgumentParses 的对象之后,我们使用 add_argument 函数添加所有预期的参数。该函数接收许多参数,其中包括参数名、目标变量、预期的数据类型、要显示的帮助消息等。

在命令行中执行该脚本时,需按如下格式传入参数:


python main.py --name John --surname Doe --age 22

执行后终端输出的结果如下所示:

John Doe 22

我们这里只是简单介绍一下,要了解更多关于这个模块的信息,可以查看这个链接https://docs.python.org/2/library/argparse.html。

总结

很多时候,你需要将参数传递给 Python 脚本。Python通过 sys 模块提供对这些参数的访问。你可以直接访问argv功能并自己处理参数解析,也可以将其他模块用作argparse来完成。对于小编来说,通常习惯使用sys模块,适合你的才是最好的~

到此这篇关于详解用Python处理Args的3种方法的文章就介绍到这了,更多相关Python处理Args内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。