python - 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.csv
is ['csv', 'Filename.csv', 'days']
,但我不想捕获围绕输入 csv 文件的csv
anddays
参数。
解决方案
您可以使用
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 100
this 产生
['test.csv']
请注意,您不需要封装parser.add_argument(...)
两次(就像您在代码中所做的那样)。
推荐阅读
- command-line - NPM 全局安装但无法从项目运行命令
- vuejs2 - 如何使用 vuex 和 laravel 上传带有标题和描述的文件
- javascript - Google Analytics Management API - 当我尝试更新 Google Analytics 视图时出现“未知名称”:根元素必须是消息
- flutter - 颤动中的下拉按钮:值未编译
- oauth-2.0 - oauth 的 smartsheet-Accesstoken 再生
- c# - 如何在我的 DI 容器中使用 IDataProtectionProvider 编写测试?
- salesforce - Salesforce 通过 HTTP 查询仅通过 JSON 响应检索有限数量的记录
- ssis - 使用带有 SSIS 的 DocuSign API 检索文档
- google-cloud-platform - 使用 conv.user.storage 导致的 Google Actions SDK“错误:未经授权,您的客户端无权访问请求的 URL”
- c# - 在某个 Id 之后选择项目/行