我有两个文件:script1.py和script2.py。我需要从script1.py调用script2.py,然后将script2.py的值返回给script1.py。但是要注意的是script1.py实际上通过os运行script2.py。
script1.py:
import os
print(os.system("script2.py 34"))
script2.py
import sys
def main():
x="Hello World"+str(sys.argv[1])
return x
if __name__ == "__main__":
x= main()
如您所见,我能够将值输入到script2中,但不能返回到script1中。我怎样才能做到这一点?注意:script2.py就像被命令行执行一样被调用。这就是为什么我使用操作系统。
好的,如果我对您的理解正确,则您希望:
我建议使用子流程模块。最简单的方法是使用check_output()函数。
运行带有参数的命令,并以字节字符串形式返回其输出。
样品溶液:
script1.py
import sys
import subprocess
s2_out = subprocess.check_output([sys.executable, "script2.py", "34"])
print s2_out
script2.py:
import sys
def main(arg):
print("Hello World"+arg)
if __name__ == "__main__":
main(sys.argv[1])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句