【发布时间】:2018-08-23 11:17:44
【问题描述】:
假设我有一个实用程序脚本:
utility.py
def func1(input):
# do stuff to input
return stuff
def func2(input):
# do more stuff to input
return more_stuff
def main(argv):
stuff = func1(argv[1])
more_stuff = func2(argv[1])
all_stuff = stuff + more_stuff
# write all_stuff to stdout or file
if __name__ == "__main__":
main(argv)
这个脚本被另一个汇总脚本调用,像这样:
rollup.py
import utility
def main(argv):
# assuming a list of of inputs is in argv[1]
inputs = argv[1]
for input in inputs:
utility.main(['utility.py', input])
if __name__ == "__main__":
main(argv)
现在假设我希望汇总脚本打印或写入文件每个实用程序.py 实例生成的所有内容的组合输出。
有没有办法通过将实用程序.py 的输出返回到汇总脚本来做到这一点? 或者汇总脚本是否必须读取实用程序.py 生成的所有输出或输出文件?
请注意,我不是询问这是否被认为是最佳实践,或者它是否在编程界“允许”。我知道 main 应该只返回成功或失败代码。我只是在问它是否可能。
【问题讨论】:
-
使用
subprocess.Popen并从rollup捕获utility的输出。