做者|Dardan Xhymshiti
编译|VK
来源|Towards Data Sciencehtml
Python中的sys模块具备argv功能。当经过终端触发main.py的执行时,此功能返回全部命令行参数的列表。返回列表中的第一个元素是main.py.python
考虑下面的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:json
python main.py first_arg "[second_arg]" "{\"arg\": 3}"
返回:bash
test.py first_arg [second_arg] {"arg": 3}
这是一种为Python代码提供参数的简单又强大的方法。它不是提供提供多个参数,而是提供单个“大”参数。这一个大参数是一个字典,键表示参数名,值表示它们的对应值。机器学习
因为在Python中读取时,dictionary参数被表示为字符串,所以应该将其转换为字典。这能够经过使用ast.literal_eval或者json.loads函数作到。ast或json模块须要相应地导入。函数
考虑下面的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
触发mian.py:.net
python main.py "{\"name\": \"John\", \"surname\": \"Doe\", \"age\": 22}"
返回:命令行
{"name": "John", "surname": "Doe", "age": 22} John Doe 22
若是你想为应用程序提供适当的命令行界面,那么argparse就是要使用的模块。这是一个成熟的模块,提供开箱即用的参数解析、帮助消息以及参数被误用时会自动抛出错误。Python默认安装此模块。
要充分利用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
函数添加全部参数。此函数接收许多参数,其中包括参数名称(例如--name
)、目标变量、预期数据类型、要显示的帮助消息等。
触发main.py:
python main.py --name John --surname Doe --age 22
返回
John Doe 22
要了解有关此模块的更多信息,请查看argparse文档:https://docs.python.org/2/library/argparse.html
不少时候,你须要向Python脚本传递参数。Python经过sys模块提供对这些参数的访问。你能够直接访问argv并处理本身的参数解析,也可使用其余模块例如argparse为你完成这项工做。
在个人平常编程生活中,若是我是代码的惟一用户,我会使用sys时;若是这代码准备用于生产时,我会使用argparse。
原文连接:https://towardsdatascience.com/3-ways-to-handle-args-in-python-47216827831a
欢迎关注磐创AI博客站:
http://panchuang.net/
sklearn机器学习中文官方文档:
http://sklearn123.com/
欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/