return 值从一个 python 脚本到另一个
return value from one python script to another
我有两个文件:script1.py 和 script2.py。我需要从 script1.py 调用 script2.py 和 return 从 script2.py 返回到 script1.py 的值。但问题是 script1.py 实际上运行 script2.py 到 os。
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 必须像命令行执行一样调用。这就是为什么我使用 os.
好的,如果我理解正确的话你想要:
- 将参数传递给另一个脚本
- 从另一个脚本中检索到原始调用者的输出
我会推荐使用 subprocess 模块。最简单的方法是使用 check_output() 函数。
Run command with arguments and return its output as a byte string.
示例解决方案:
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])
将值从一个 python "script" return 转换为另一个 "script" 的推荐方法是将脚本导入为 Python 模块并直接调用函数:
import another_module
value = another_module.get_value(34)
其中 another_module.py
是:
#!/usr/bin/env python
def get_value(*args):
return "Hello World " + ":".join(map(str, args))
def main(argv):
print(get_value(*argv[1:]))
if __name__ == "__main__":
import sys
main(sys.argv)
您可以将 another_module
和 运行 作为脚本从命令行导入。如果您不需要 运行 它作为命令行脚本,那么您可以删除 main()
函数和 if __name__ == "__main__"
块。
另见,。
我有两个文件:script1.py 和 script2.py。我需要从 script1.py 调用 script2.py 和 return 从 script2.py 返回到 script1.py 的值。但问题是 script1.py 实际上运行 script2.py 到 os。
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 必须像命令行执行一样调用。这就是为什么我使用 os.
好的,如果我理解正确的话你想要:
- 将参数传递给另一个脚本
- 从另一个脚本中检索到原始调用者的输出
我会推荐使用 subprocess 模块。最简单的方法是使用 check_output() 函数。
Run command with arguments and return its output as a byte string.
示例解决方案:
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])
将值从一个 python "script" return 转换为另一个 "script" 的推荐方法是将脚本导入为 Python 模块并直接调用函数:
import another_module
value = another_module.get_value(34)
其中 another_module.py
是:
#!/usr/bin/env python
def get_value(*args):
return "Hello World " + ":".join(map(str, args))
def main(argv):
print(get_value(*argv[1:]))
if __name__ == "__main__":
import sys
main(sys.argv)
您可以将 another_module
和 运行 作为脚本从命令行导入。如果您不需要 运行 它作为命令行脚本,那么您可以删除 main()
函数和 if __name__ == "__main__"
块。
另见,