两条管道各接到了什么
下面这段程序用两个缓冲区模拟 stdout 和 stderr:结果进 out,提示进 err。运行它,看两条管道各接到几行、退出码是多少:
import io
out, err = io.StringIO(), io.StringIO()
def main(argv):
if len(argv) < 1:
print("缺少数值", file=err)
return 2
print(float(argv[0]) * 9 / 5 + 32, file=out)
return 0
codes = [main([]), main(["37"]), main([])]
print(out.getvalue().strip() + "/" + str(len(err.getvalue().splitlines())) + "/" + "".join(str(c) for c in codes))
全部评论