У меня есть скрипт, который принимает чч: мм: сс входные данные
например
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
как я могу заставить argparse понимать мои входные данные?
updates
Теперь я решил проблему, используя следующий код
# 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 = vars (ap.parse_args (что-то))
кажется, что argv был волшебным образом обработан.
ответ: argv [1:] будет автоматически обработан, если у вас нет другого материала для разбора.