下面是一个简短的程序,说明如何通过管道或sys.exit()
从一个子进程中获得一个数字。请注意,可以从sys.exit()
返回的数值范围是有限的。
import sys
import subprocess
def sub():
print(42)
except:
# Print something even in case of an exception
print(-1)
raise
sys.exit(43)
def main():
writer = subprocess.Popen(["python3", sys.argv[0], "sub"],
stdout = subprocess.PIPE)
for line in writer.stdout:
print(int(line))
exitcode = writer.wait()
print('exitcode', exitcode)
if len(sys.argv) > 1 and sys.argv[1] == 'sub':
sub()
else:
main()