argparse без аргумента тире (просто введите путь к исходному файлу)

Вопрос:

Можно ли выполнить: test_argparse.py c:\folder\somefile.txt и получить

результаты печати: Namespace(filepath='c:\\folder\\somefile.txt')

Добавление -filepath не имеет большого значения, но просто интересно, есть ли способ пропустить его, если вам нужно передать только путь к файлу.

Рабочий код:

имя файла: test_argparse.py

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('-filepath', metavar='in-file')
results = parser.parse_args()

print results

выполнить: test_argparse.py -filepath c:\folder\somefile.txt

результаты печати: Namespace(filepath='c:\\folder\\somefile.txt')


person Level1Coder    schedule 14.10.2013    source источник


Ответы (1)


Я думаю, вам нужен аргумент positional. Вы указываете имя аргумента, в данном случае filepath, но без префикса (-).

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('filepath', metavar='in-file')

results = parser.parse_args('test'.split())
# Namespace(filepath='test')
results = parser.parse_args()
print results
person hpaulj    schedule 14.10.2013