我有一些像这样的代码 -
## ARGUMENTS
parser = argparse.ArgumentParser()
parser.add_argument("environment", help="Environment to change queue")
parser.add_argument("queue", help="Queue to change")
parser.add_argument("limit", help="Limit value")
args = parser.parse_args()
current_user = getpass.getuser()
environment = raw_input("Environment you are in: ")
queue = raw_input("Queue you wish to modify: ")
limit = raw_input("Limit value of Queue: ")
我想要做的是如果在调用文件时没有提供参数 -
prog.py DEV test_queue 1
我希望它要求输入获取值。
答案 0 :(得分:5)
如果您愿意使用命名参数......
## ARGUMENTS
import argparse
import getpass
parser = argparse.ArgumentParser()
parser.add_argument("--environment", help="Environment to change queue",
default=None)
parser.add_argument("--queue", help="Queue to change", default=None)
parser.add_argument("--limit", help="Limit value", default=None)
args = parser.parse_args()
current_user = getpass.getuser()
environment = args.environment if args.environment else raw_input("Environment you are in: ")
queue = args.queue if args.queue else raw_input("Queue you wish to modify: ")
limit = args.limit if args.limit else raw_input("Limit value of Queue: ")
print environment, queue, limit
答案 1 :(得分:0)
如果你真的想要位置参数我建议跳过argparse并去旧学校sys.argv:
import sys
import getpass
current_user = getpass.getuser()
argv = sys.argv[1:]
environment = argv[0] if len(argv) > 0 else raw_input("Environment you are in: ")
queue = argv[1] if len(argv) > 1 else raw_input("Queue you wish to modify: ")
limit = argv[2] if len(argv) > 2 else raw_input("Limit value: ")