Я зову питон скрипт с помощью следующей командной строки:Использования optparse для чтения в списке из параметров командной строки
myscript.py --myopt="[(5.,5.),(-5.,-5.)]"
Вопрос заключается в том - как преобразовать myopt переменного списка. Мое решение было использовать optparse, лечение myopt в виде строки, и используя
(options, args) = parser.parse_args()
myopt = eval(options.myopt)
Теперь, потому что я использовал eval()
я чувствую себя немного как Добби домовой эльф, имея заведомо преступили заповеди больших (кодирования) мастеров, и желая самокритиковать себя в наказание.
Но есть ли лучшие варианты для синтаксического анализа списков или кортежей или списков кортежей из командной строки? .. Я видел решения, которые используют split()
, но здесь это не сработает, так как это не простой список. Имейте в виду, что это делается в контексте, в основном, одноразовых научных вычислений без каких-либо проблем с безопасностью - так, возможно, eval()
здесь не так злой? ..