[英]How can i get a particular character from a Python list followed by command line argument variable
[英]How can I make command line argument values get assigned to selection of 2 variables in python?
我在這里使用 argparse package。
此代碼中有 4 個可能的命令行 arguments。 我只需要選擇其中兩個的任意組合,例如“python script.py -arg1 int1 int2 int3 -arg4 int1 int2 int3”,並將這些 int 值分配給 for 循環中的變量(見下文)。
我怎樣才能使輸入 4 個命令行 arguments 中的哪一個無關緊要,並將它們的 int 值分配給兩個 for 循環之一? 只要所有組合都是可能的,他們進入哪個 for 循環並不重要。 這甚至有意義嗎? 抱歉,如果沒有
import numpy as np
import argparse
parser = argparse.ArgumentParser(description = 'Test')
parser.add_argument('-arg1', nargs =3, required = False, type = int)
parser.add_argument('-arg2', nargs = 3, required = False, type = int)
parser.add_argument('-arg3', nargs = 3, required = False, type = int)
parser.add_argument('-arg4', nargs = 3, required = False, type = int)
args = parser.parse_args()
if arg1:
args.arg1[0] = #start1 or start2
args.arg1[1] = #stop1 or stop2
args.arg1[2] = #num_samples1 or numsamples2
if arg2:
args.arg2[0] = #start1 or start2
args.arg2[1] = #stop1 or stop2
args.arg2[2] = #num_samples1 or numsamples2
if arg3:
args.arg3[0] = #start1 or start2
args.arg3[1] = #stop1 or stop2
args.arg3[2] = #num_samples1 or numsamples2
if arg4:
args.arg4[0] = #start1 or start2
args.arg4[1] = #stop1 or stop2
args.arg4[2] = #num_samples1 or numsamples2
for a in np.linspace(start1, stop1, num_samples1):
for b in np.linspace(start2,stop2,num_samples2):
#do something with these values
首先通過迭代四種可能性並選擇那些不是無的來獲得你的兩個參數:
two_args = [a for a in (args.arg1, args.arg2, args.arg3, args.arg4) if a]
if len(two_args) != 2:
print("Exactly two of arg1, arg2, arg3, and/or arg4 must be provided")
exit()
然后你可以得到你的六個值是這樣的:
(start1, stop1, num_samples1), (start2, stop2, num_samples2) = two_args
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.