gpt4 book ai didi

python - 使用 optparse 从命令行选项中读取列表

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:37 25 4
gpt4 key购买 nike

我正在使用以下命令行调用 python 脚本:

myscript.py --myopt="[(5.,5.),(-5.,-5.)]"

问题是——如何将 myopt 转换为列表变量。我的解决方案是使用 optparse,将 myopt 视为字符串,并使用

(options, args) = parser.parse_args()    
myopt = eval(options.myopt)

现在,因为我使用了 eval(),我感觉有点像家养小 Sprite 多比,明知故犯地违反了伟大的(编码)巫师的诫命,并想在惩罚中 self 鞭笞。

但是是否有更好的选项来从命令行解析列表或元组或元组列表?..我见过使用 split() 的解决方案,但这在这里行不通,因为这不是一个简单的列表。还要记住,这是在大多数一次性科学计算的背景下完成的,没有安全问题——所以也许 eval() 在这里不是那么邪恶?..

最佳答案

ast.literal_eval(node_or_string):

Safely evaluate an expression node or a string containing a Python expression. The string or node provided may only consist of the following Python literal structures: strings, numbers, tuples, lists, dicts, booleans, and None.

This can be used for safely evaluating strings containing Python expressions from untrusted sources without the need to parse the values oneself.

所以你可以这样做

import ast
(options, args) = parser.parse_args()
myopt = ast.literal_eval(options.myopt)

关于python - 使用 optparse 从命令行选项中读取列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3175606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com