Передача нескольких текстовых файлов в качестве аргументов скрипту с использованием шаблона - PullRequest
0 голосов
/ 19 октября 2018

Прежде всего, я хотел бы заявить, что это отладочный вопрос для упражнения, но я не могу получить никакой помощи от лектора, и, насколько я прочитал аргументы, я не могу показатьсячтобы понять это, вот и яИтак, у меня есть скрипт на python, который сравнивает файлы .txt, переданные в качестве аргументов.В настоящее время это называется следующим образом:

python compare.py -s stop_list.txt NEWS/news01.txt NEWS/news02.txt

и файлы разбираются в список имен с использованием

import sys, re, getopt, glob

opts, args = getopt.getopt(sys.argv[1:],'hs:bI:')
opts = dict(opts)
filenames = args

if '-I' in opts:
    filenames = glob.glob(opts['-I'])

print('INPUT-FILES:', ' '.join(filenames))
print(filenames)

Я могу передать более двух файлов, просто перечислив их вместе

python compare.py -s stop_list.txt NEWS/news01.txt NEWS/news02.txt NEWS/news03.txt NEWS/news04.txt

, но это может быстро стать непрактичным.

Теперь предлагается передавать больше файлов с использованием шаблона

python compare.py -s stop_list.txt -I ’NEWS/news??.txt’
i.e.:
python compare.py -s stop_list.txt -I ’NEWS/news0[123].txt’

Однако, похоже, он ведет себя немногоудачливый.Прежде всего, если я напишу:

python compare.py -s stop_list.txt -I NEWS/news01.txt NEWS/news02.txt

, только news01.txt будет передан в скрипт.

Ниже, при использовании предложенного шаблона, нет никакого ввода вообще.Я не могу понять, является ли код для разбора входных файлов неправильным и нуждается в некотором изменении, или я делаю что-то не так.

-h заявляет:

USE: python <PROGNAME> (options) file1...fileN
OPTIONS:
    -h : print this help message
    -b : use BINARY weights (default: count weighting)
    -s FILE : use stoplist file FILE
    -I PATT : identify input files using pattern PATT, 
              (otherwise uses files listed on command line)

Заранее спасибо:)

1 Ответ

0 голосов
/ 19 октября 2018

Проверьте цитаты.Они кажутся особенными.Вместо этого попробуйте 'или'.

...