Найти - Пользователи
Полная версия: getopt.getopt что это?
Начало » Python для новичков » getopt.getopt что это?
1
AlexSSpirit
Уже несколько дней прихожу к попыткам понять, что делает функция getopt.getopt и раз за разом не получается. Перечитал по нескольку раз пару документаций, но всё равно не могу разобраться в ней.
Ребята кому несоставляет тяжкого труда, обьяснить скажим к примеру вот эти строчки:
s0 = v0 = 0;  a = t = 1
import getopt, sys
options, args = getopt.getopt(sys.argv[1:], '', ['t=', 's0=', 'v0=', 'a='])

обьясните пожалуйста что происходит.
FishHook
import getopt, sys
options, args = getopt.getopt(sys.argv[1:], 'a:b:c:')
print options, args
smirnov@smirnov ~ $ python uu.py -o 4
Traceback (most recent call last):
  File "uu.py", line 2, in <module>
    options, args = getopt.getopt(sys.argv[1:], 'a:b:c:')
  File "/usr/lib/python2.7/getopt.py", line 90, in getopt
    opts, args = do_shorts(opts, args[0][1:], shortopts, args[1:])
  File "/usr/lib/python2.7/getopt.py", line 190, in do_shorts
    if short_has_arg(opt, shortopts):
  File "/usr/lib/python2.7/getopt.py", line 206, in short_has_arg
    raise GetoptError('option -%s not recognized' % opt, opt)
getopt.GetoptError: option -o not recognized
import getopt, sys
options, args = getopt.getopt(sys.argv[1:], 'a:b:o:')
print options, args
>>> [('-o', '4')] []

То есть проверяет, были ли указаны обязательные параметры запуска скрипта

ИМХО, лучше юзать argparse
AlexSSpirit
FishHook
То есть проверяет, были ли указаны обязательные параметры запуска скрипта
Прости, я новичок и мне твои комменты как мёртову припарка)

Буду благодарен, если разложишь по пунктам эту строчку?
options, args = getopt.getopt(sys.argv[1:], '', ['t=', 's0=', 'v0=', 'a='])




FishHook
AlexSSpirit
Прости, я новичок и мне твои комменты как мёртову припарка)

код
[code]
import getopt, sys
options, args = getopt.getopt(sys.argv[1:], 'a:b:c', ["help", "output="])
print options
[/code]

Запуск этого кода в консоле с параметрами

[code ]
python uu.py -a 5 --output=out.txt
[/code]

результат

[code]
[('-a', '5'), ('--output', 'out.txt')]
[/code]

На пальцах:
Ты запускаешь скрипт с параметрами - игру в дурака, в зависимости от параметров может по разному работать скрипт. Допустим, в примере выше, параметр а означает количество игроков, а output - файл для лога результатов.
sys.argv[1:] - получаешь параметры запуска скрипта.
'a:b:c' - перечисляешь допустимые параметры
["help", "output="] - и "длинные" параметры. которые обычно необязательны и дублируют короткие
FishHook
Что-то опять сломалось на форуме, лишние теги откуда-то берутся
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB