共计 1964 个字符,预计需要花费 5 分钟才能阅读完成。
作者 |Dardan Xhymshiti
编译 |VK
起源 |Towards Data Science
1.sys 模块
Python 中的 sys 模块具备 argv 性能。当通过终端触发 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 代码提供参数的简略又弱小的办法。它不是提供提供多个参数,而是提供单个“大”参数。这一个大参数是一个字典,键示意参数名,值示意它们的对应值。
因为在 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:
python main.py "{\"name\": \"John\", \"surname\": \"Doe\", \"age\": 22}"
返回:
{"name": "John", "surname": "Doe", "age": 22}
John
Doe
22
3.argparse 模块
如果你想为应用程序提供适当的命令行界面,那么 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/lib…
论断
很多时候,你须要向 Python 脚本传递参数。Python 通过 sys 模块提供对这些参数的拜访。你能够间接拜访 argv 并解决本人的参数解析,也能够应用其余模块例如 argparse 为你实现这项工作。
在我的日常编程生存中,如果我是代码的惟一用户,我会应用 sys 时;如果这代码筹备用于生产时,我会应用 argparse。
原文链接:https://towardsdatascience.co…
欢送关注磐创 AI 博客站:
http://panchuang.net/
sklearn 机器学习中文官网文档:
http://sklearn123.com/
欢送关注磐创博客资源汇总站:
http://docs.panchuang.net/