python - Python子进程打开控制台并将stdout/stderr保存到文件
问题描述
我在这里有示例代码:
from subprocess import *
def runSubprocess(cmd,flog,console = False):
if console:
p=Popen( [sys.executable]+cmd,
cwd = os.getcwd(),
shell = False,
creationflags=CREATE_NEW_CONSOLE
#creationflags=CREATE_NEW_PROCESS_GROUP
)
else:
if flog != '':
f = open(flog, "w")
else:
f = PIPE
p=Popen( [sys.executable]+cmd,
stdout=f,
stderr = STDOUT,
stdin = PIPE,
shell = False,
cwd = os.getcwd())
return p
p=runSubprocess([f],flog,True)
print ('PID ',p.pid )
p.communicate()
print ('Return code = ',p.returncode)
当调用 subprocess 函数时,我想查看我的程序正在运行并将其打印到控制台进行调试。我的脚本有问题。returncode != 0 时如何捕获错误并保存到日志文件以查看?
解决方案
推荐阅读
- laravel-8 - 将函数中的请求值传递给同一控制器中的其他函数
- css - 改变
contenteditable div 中的颜色/高度(反应) - angular - Angular polyfills core-js 在 IE11 上无法正常工作
- bash - AWS S3 download all files with same name with shell
- java - 是否可以/建议仅针对 @ScheduledTasks 和 ORM 在没有控制器的情况下运行 Spring Boot?
- python - 学习率衰减的全局步骤有什么作用?
- excel - 为什么 VBA 不能清除受保护工作表上图表区域的内容?
- python - 根据数据框中的其他值更改值
- javascript - 如何启用 google chrome 浏览器在 Windows 中运行本地命令?
- django-rest-framework - 如何配置我的 Django REST 框架视图以识别我的“授权”标头?