我正在绑定一个脚本,它会将argparse参数传递给另一个python
第一个脚本: t.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")
commandLineArguments = commandLineArgumentParser.parse_args()
fname = commandLineArguments.fname
lname = commandLineArguments.lname
print "%s\n%s" %(fname,lname)
os.system("python test1.py")
test1.py的代码如下:
import argparse
import os
print "test abc"
我想将 lname 和 fname 值传递给 test1.py 。这是他们的任何方式。
如果我跑了,在上面的代码中
python t.py -fname ms lname = dhoni
然后输出
ms
dhoni
test abc
但我希望输出像下面那样
ms
dhoni
ms
dhoni
答案 0 :(得分:0)
试试test1.py
:
from sys import argv
print "%s\n%s" % (argv[1], argv[2])
答案 1 :(得分:0)
嗯我不明白你为什么要这样做,但你真的已经拥有完成这项任务所需的一切:
第一个python脚本(我称之为sof.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")
commandLineArguments = commandLineArgumentParser.parse_args()
fname = commandLineArguments.fname
lname = commandLineArguments.lname
print("%s\n%s" %(fname,lname))
command = "python sof2.py {arg1} {arg2}".format(arg1=fname, arg2=lname)
os.system(command)
第二个python scrit(这里是sof2.py)
import argparse
import subprocess
import os
commandLineArgumentParser = argparse.ArgumentParser()
commandLineArgumentParser.add_argument("fname")
commandLineArgumentParser.add_argument("lname")
commandLineArguments = commandLineArgumentParser.parse_args()
fname = commandLineArguments.fname
lname = commandLineArguments.lname
print "%s\n%s" %(fname,lname)
这给我以下执行:
python3 sof.py -fname foo -lname bar
foo
bar
foo
bar
注意:我使用python3,但是如果你必须使用python2,那么这段代码仍然是正确的,只需删除(
周围的)
和print
答案 2 :(得分:0)
您可以修改test1.py以包含t.py并直接访问argparse变量。
test1.py
import t.py
print t.fname, t.lname
答案 3 :(得分:0)
将test1.py更改为:
import argparse
import os
import sys
print sys.argv
print "test abc"
从test1.py
致电t.py
作为:
os.system("python test1.py vv gg hh")
现在vv gg hh
可以使用test1.py
{。}}。{/ p>