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

作者:Warmer_Sweeter 时间:2023-01-21 17:10:10 

1. sys 模块

Python 中的 sys 模块具有 argv 功能。当通过终端触发 main.py 的执行时,此功能将返回提供给 main.py 的所有命令行参数的列表。除了其他参数之外,返回列表中的第一个元素是 main.py 的路径。

考虑下面的 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])

用如下方式在命令行触发 main.py :


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

输出的结果如下所示:

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

2.带有一个大参数的 sys 模块

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

考虑下面的 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

用如下方式在命令行触发 main.py :


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

输出的结果如下所示:

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

3. 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 函数添加所有预期的参数。该函数接收许多参数,其中包括参数名、目标变量、预期的数据类型、要显示的帮助消息等。

用如下方式在命令行触发 main.py :


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

输出的结果如下所示:

John
Doe
22

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

来源:https://blog.csdn.net/weixin_38739735/article/details/113488574

标签:Python,Args
0
投稿

猜你喜欢

  • python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)

    2023-07-07 01:18:03
  • django项目环境搭建及在虚拟机本地创建django项目的教程

    2022-10-14 14:04:32
  • Python操作mongodb数据库进行模糊查询操作示例

    2024-01-29 03:40:45
  • php实现压缩多个CSS与JS文件的方法

    2023-11-23 08:39:59
  • python能在浏览器能运行吗

    2023-05-11 14:32:07
  • Python基本知识点总结

    2022-06-04 13:35:49
  • python之用Numpy和matplotlib画一个魔方

    2022-10-21 16:12:48
  • 百度在线手写输入法

    2010-02-03 14:27:00
  • Python详细介绍模型封装部署流程

    2023-03-27 00:49:32
  • echarts学习之legend点击事件解读

    2024-05-03 11:10:17
  • Scrapy-redis爬虫分布式爬取的分析和实现

    2023-01-04 10:21:19
  • springboot配置文件抽离 git管理统 配置中心详解

    2021-05-24 08:17:18
  • Python之web模板应用

    2021-06-27 10:13:47
  • python中的try except与R语言中的tryCatch异常解决

    2021-10-22 02:24:48
  • Python实现读取文件最后n行的方法

    2023-08-02 10:33:32
  • 一文带你上手Vue新的状态管理Pinia

    2024-05-09 15:11:33
  • python实现五子棋小程序

    2023-12-04 20:49:37
  • mysql从一张表查询批量数据并插入到另一表中的完整实例

    2024-01-15 17:38:43
  • 解决pycharm启动后总是不停的updating indices...indexing的问题

    2023-03-05 07:35:38
  • CentOS 6、7下mysql 5.7 详细安装教程

    2024-01-24 18:00:47
  • asp之家 网络编程 m.aspxhome.com