Я работаю над скриптом, под которым будет запускаться какая-то подпрограмма. , например test.py является основной программой и при этом test1.py, test2.py, test3.pl будет работать, и мне нужно передать аргументы из основной программы (test.py) к test1.py и test2.py. Кроме того, аргументы должны быть в неизменном состоянии. переходя к другой программе.как передать аргументы argparse другой программе python в неизменном состоянии?
код: test.py
import argparse
import subprocess
import os
commandLineArgumentParser = argparse.ArgumentParser()
commandLineArgumentParser.add_argument("-fname", "--fname",help="first name")
commandLineArgumentParser.add_argument("-lname","--lname", help="last name")
commandLineArgumentParser.add_argument("-age","--age", help="age")
commandLineArguments = commandLineArgumentParser.parse_args()
fname = commandLineArguments.fname
lname = commandLineArguments.lname
age = commandLineArguments.age
print "%s%s%s" %(fname,lname,age)
Я бег программы по сильфонным командам:
python test.py -fname=abc -age=22 -lname='test a'
or
python test.py -fname="abc test" lname='val' -age=30
or
python test.py -age=45 -lname='abc aa' fname="abc"
or
python test.py -age=45 -lname="test"
теперь я хочу, чтобы захватить аргумент часть в неизменном состоянии и поставить в одном переменной, то мы легко сможем легко передать аргументы в программу.
Для первой команды переменный проведет
-fname=abc -age=22 -lname='test a'
для 2-й команды
-fname="abc test" lname='val' -age=30
Я пытался захватить аргументы с помощью сильфона кода, но квоты отсутствуют по сценарию.
my_argu=''
if len(sys.argv) >1:
for x in sys.argv:
if x == sys.argv[0]:
continue
if x == sys.argv[len(sys.argv)-1]:
my_argu =my_argu+x
else:
my_argu = my_argu+x+' '
print "%s" %(my_argu)
для
python test.py -fname="abc test" lname='val' -age=30
на выходе:
abc testval30
-fname=abc test lname=val -age=30
как вы можете видеть квоты отсутствуют. Так что мне нужна помощь в его решении.
Это ошибка, что у вас есть LName с и без ведущего дефиса? – deets
Это была моя ошибка .... извините за это ... Я исправил эту ошибку – Arijit
Как вы выполняете другую программу? – ThinkChaos