【问题标题】:Using argparse, how do parse command line arguments to specify variable values?使用 argparse,如何解析命令行参数以指定变量值?
【发布时间】:2014-07-10 21:52:49
【问题描述】:

对于多个函数,我如何编写代码以便我可以输入函数变量的值以获得结果?

def sum(i, j):
      return i+j

def totalsum(k):
      return sum(a, b) + k

print totalsum(c)

命令行提示

python gendata.py -–a=1 –-b=2 –-c=3

【问题讨论】:

  • argparse tutorial 是一个很好的起点。
  • 我想你可能希望你的第二个函数接受三个参数,除非我不明白你的意思。
  • 为什么sum 忽略它的参数并返回两个全局变量的和?
  • 抱歉有错别字!

标签: python command-line argparse


【解决方案1】:

我不完全理解您对函数的使用,但这里是您的程序的改编版(基于我对您想要完成的工作的最大能力):

import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('a', type=int)
parser.add_argument('b', type=int)
parser.add_argument('c', type=int)

args = parser.parse_args()

def sum(i, j):
      return i+j

def totalsum(k):
      return sum(args.a, args.b) + k

print totalsum(args.c)

用法:

python script.py 1 2 3
6

【讨论】:

  • 我正在尝试使用命令行输入函数参数的值,这是函数的简化版本
  • 已适当更新。
  • 我得到了这个.. 用法:myScript.py [-h] a b c myScript.py: 错误:参数太少
  • 有趣,因为它可以在我的机器上运行...嗯,我不知道 atm。
【解决方案2】:

你可以这样做:

import argparse
parser = argparse.ArgumentParser()

parser.add_argument("--a", type=int)
parser.add_argument("--b", type=int)
parser.add_argument("--c", type=int)

args = parser.parse_args()

print(args.a, args.b, args.c)

【讨论】:

  • parser.add_argument("--a", type=int)
猜你喜欢
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 2011-04-27
  • 2021-11-05
相关资源
最近更新 更多