在我的根目录中
$ cat pssa.py
import subprocess,sys
p = subprocess.Popen(["powershell.exe",".\\pre-commit.ps1"],
stdout=sys.stdout,stderr=sys.stderr,shell=True)
p.communicate()
ps1返回1,所以它是错误的,但是
python pssa.py
返回0。
Forgive us the complete lack of python skills, but I'm stuck. Grateful for help suggesting how python pssa.py can return the error code from the powershell script.
我想我在什么地方读到过Popen不等待脚本完成。那么1)有没有另一种方法我可以使用,它确实等待,并且反过来可以从Powershell读取返回代码?
Python是安装在Windows上的,上面的想法是为了能够在Windows上有意义地使用,例如,pre-commit run,现在,pre-commit run,执行powershell脚本,但不会像我希望的那样失败。
1条答案
按热度按时间qyswt5oh1#
Popen.communicate
等待子进程完成,并将returncode
填充到Popen
中。您可以按如下方式使用它: