如何将 argparse 参数传递给另一个 Python 程序?

2024-05-13 19:53:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在绑定一个脚本,它将把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的代码如下

^{pr2}$

我想把lnamefname的值传递给test1.py。它们是否可以这样做。在

如果我跑的话

python t.py -fname ms lname = dhoni

那么输出是

ms
dhoni
test abc

但我希望输出像bellow

ms
dhoni
ms
dhoni 

Tags: pyimport脚本addosargparsehelpargument
3条回答

test1.py尝试此操作:

from sys import argv
print "%s\n%s" % (argv[1], argv[2])

您可以修改test1.py以包含t.py并直接访问argparse变量。在

测试1.py

import t.py
print t.fname, t.lname

嗯,我不明白你为什么要这么做,但你真的已经具备了完成这项任务所需的一切:

第一个python脚本(我称之为软拷贝)公司名称:

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脚本(这里是sof2.py)

^{pr2}$

这给了我以下的执行:

python3 sof.py -fname foo -lname bar
foo
bar
foo
bar

注意:我使用python3,但是如果您必须使用python2,那么这段代码仍然正确,只需删除(和{}围绕{}

相关问题 更多 >