繁体   English   中英

argparse - 如何将参数从 args 传递到 function?

[英]argparse - how to pass argument from args into function?

import argparse
from queries import most_common_cities

parser = argparse.ArgumentParser(description='A script that does operations with database data and returns values')

parser.add_argument('-c', '--most_common_cities',
                nargs=1,
                type=positive_int,
                help='Specify how many common cities.')

args = parser.parse_args()

if args.most_common_cities:
result = most_common_cities(n) # "n" should be an arg passed by user
print(result)

如何将 arguments 从 CLI 传递到我的 function arg? 当有人使用命令时:

python argp.py --most_common_cities 5

它应该返回 5 个最常见的城市。

删除nargs=1 ,则args.most_common_cities将是传入的实际值。

nargs=1将其包装在一个列表中。

parser.add_argument('-c', '--most_common_cities',
                type=int,
                help='Specify how many common cities.')

args = parser.parse_args(['-c', '5'])
n = args.most_common_cities
print(n)
print(type(n))
# 5
# <class 'int'>

我使用以下命令启动了您的脚本:

python3 test.py --most_common_cities 5

您可以通过以下方式访问 arguments:

import argparse

parser = argparse.ArgumentParser(description='A script that does operations with database data and returns values')

parser.add_argument('-c', '--most_common_cities',
                nargs=1,
                type=int,
                help='Specify how many common cities.')

args = parser.parse_args()

arguments = vars(parser.parse_args())
print(arguments) #{'most_common_cities': [5]}

#then you can access the value with:
arguments['most_common_cities']


暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM