如果設置metavar=('OLDFILE', 'NEWFILE')
:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--rename', type=str, nargs=2, help='some help',
metavar=('OLDFILE', 'NEWFILE'))
args = parser.parse_args()
print(args)
然後test.py -h
產生
usage: test.py [-h] [--rename OLDFILE NEWFILE]
optional arguments:
-h, --help show this help message and exit
--rename OLDFILE NEWFILE
some help
然後,您可以用
oldfile, newfile = args.rename
訪問這些參數如果你真的想訪問OL與args.rename.oldfile
dfile你可以建立一個自定義操作:
import argparse
class RenameAction(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
setattr(namespace, self.dest,
argparse.Namespace(
**dict(zip(('oldfile', 'newfile'),
values))))
parser = argparse.ArgumentParser()
parser.add_argument('--rename', type=str, nargs=2, help='some help',
metavar=('OLDFILE', 'NEWFILE'),
action=RenameAction)
args = parser.parse_args()
print(args.rename.oldfile)
,但額外的代碼並沒有真正似乎值得我。
感謝提供的所有細節......「的oldfile,newfile中= args.rename」將做的工作:) – Wolfy