у меня есть скрипт, который взять чч: мм: сс входыпитон argparse с форматом времени
, например
vid_cut.py -t 00:00:30 00:10:00
, но когда я делаю
from sys import argv
from argparse import ArgumentParser as AP
ap = AP()
ap.add_argument('-f',type=str)
ap.add_argument('-tp',nargs='+',type=str)
arg = ap.parse_args(argv)
print arg['-tp']
я получил
vid_cut.py: error: unrecognized arguments: vid_cut.py
как я могу заставить argpse понять мой inp UTS?
обновления
Теперь я решил эту проблему, с помощью следующего кода
# imports
from os import system as sc
from sys import argv
from argparse import ArgumentParser as AP
from itertools import tee , izip
# cmd synthesis
ap = AP()
ap.add_argument('-f',type=str)
#ap.add_argument('-tp',nargs='+',type=str)
ap.add_argument('-tp',nargs='+',type=str)
arg = vars(ap.parse_args())
print argv
print arg
f_name = arg['f']
tp = map(HMS_S, arg['tp'])
ffmpeg_cmd = "ffmpeg -sameq -ss %s -t %s -i %s %s"
# system call
for t,dt in diff(tp):
print ffmpeg_cmd % (t,dt,f_name,f_name + str(t))
единственный вопрос, я не знаю, почему, когда мы должны сделать Arg = вары (ар. parse_args (что-то))
похоже, что argv был магически обработан.
ответ: argv [1:] будет автоматически обработан, если у вас нет другого материала для разбора.
Не могли бы вы предоставить немного больше кода, пожалуйста? –
Благодарю вас за комментарий, я поместил весь код в соответствии с запросом. –