首页 > 解决方案 > Nargs='+' 捕获太多参数 python

问题描述

我将 argparse 用于命令行参数,其中一个参数是一个或多个.csv文件:

parser = argparse.ArgumentParser(description='...')
parser.add_argument('csv', type=str, nargs='+', help='.csv file(s)'))
parser.add_argument('days', type=int, help='Number of days'))

args = parser.parse_args()

print(args.csv)

运行时$ python Filename.py csv Filename.csv days 30, args.csvis ['csv', 'Filename.csv', 'days'],但我不想捕获围绕输入 csv 文件的csvanddays参数。

标签: pythonpython-3.xargparse

解决方案


您可以使用

import argparse
parser = argparse.ArgumentParser(description='...')
parser.add_argument("csv", type=str, nargs='+', help='.csv file(s)')
parser.add_argument("days", type=int, help='Number of days')

args = parser.parse_args()

print(args.csv)

调用例如python your_script.py test.csv 100this 产生

['test.csv']

请注意,您不需要封装parser.add_argument(...)两次(就像您在代码中所做的那样)。


推荐阅读