Tüm argüman bilgilerini arg1.dest, arg1.help vb. Kullanarak arg1'den arg3'e kadar tüm argümanlar için almaya çalışıyorum. Ben bir + döngü içine almak için arg + "1,2,3" ekleyerek bir döngü kullanmak ve daha sonra ekleme için sql kodu yazarken farklı insert komutları kullanamıyorum. Burada bir yazım hatasıyla karşılaşıyorum. arg1, daha önce bir ayrıştırıcı nesnesidir, ancak dize dönüştürüp eklediğim için arg1.dest veya arg1.help'e artık erişemiyorum.Tipografi Argparse - python kullanırken Ayrıştırıcı nesnesine dize
Doğru ayrıştırıcı nesnesine yazı yazmanın bir yolu var mı? Herhangi bir girdi son derece takdir edilmektedir. value = locals()["arg"+str(x)]
için
import argparse
def fibo(num):
a,b = 0,1
for i in range(num):
a,b=b,a+b
return a
def Main():
parser = argparse.ArgumentParser(description="To the find the fibonacci number of the give number")
arg1 = parser.add_argument("num",help="The fibnocacci number to calculate:", type=int)
arg2 = parser.add_argument("-p", "--password", dest="password", help="current appliance password")
arg3 =parser.add_argument("-i", "--ignore", action="store_true", dest="ignore")
parser.add_argument("-x", "--dbinsert", help="insert data in db",action="store_true")
args = parser.parse_args()
result = fibo(args.num)
print("The "+str(args.num)+"th fibonacci number is "+str(result))
if args.dbinsert:
for x in range(1,len(vars(args))):
value = ("arg"+str(x))
print(value.dest)
if __name__ == '__main__':
Main()
-----------------------------------------------------------------
When I run : python myping.py 10 --dbinsert
Output : The 10th fibonacci number is 55
Traceback (most recent call last):
File "myping.py", line 42, in <module>
Main()
File "myping.py", line 34, in Main
print(value.dest)
AttributeError: 'str' object has no attribute 'dest'