Удалить проанализированные параметры и их значения из sys.argv

Я пытаюсь использовать optparse (для анализа параметров командной строки в моем сценарии) и fileinput (чтобы обеспечить гибкость ввода данных через канал или файл).

import optparse, fileinput

parser = OptionParser()    
parser.add_option("-v", action="store_true", dest="verbose")
(options, args) = parser.parse_args()

for line in fileinput.input:
     process(line)

Однако fileinput пытается использовать параметр «-v», а также имя файла, что приводит к ошибке «Нет такого файла или каталога». Так что либо мне нужно сделать аргументы ввода файла, либо удалить проанализированные параметры из sys.argv, однако я не знаю элегантного способа сделать это. Любые указатели?


person Ranjan    schedule 18.03.2012    source источник


Ответы (1)


Из документации:

Чтобы указать альтернативный список имен файлов, передайте его в качестве первого аргумента input(). Допускается также одно имя файла.

Таким образом, вы можете просто передать остатки args, которые вы получили от optparse.

person David Z    schedule 18.03.2012
comment
Ааааааааааааааааааааа Большое спасибо. Не могу поверить, что я пропустил это. - person Ranjan; 18.03.2012