在批处理运行python错误消息时显示或留下它们

2024-04-19 22:32:29 发布

您现在位置:Python中文网/ 问答频道 /正文

为了简化,我有一个批处理文件,它运行多个python程序:

start "01" /wait "C:\python27\python.exe" test1.py
start "02" /wait "C:\python27\python.exe" test2.py

但是我发现,即使test1.py由于错误而没有运行,它也只是继续运行test2.py。在

它甚至会在遇到错误时立即关闭test1.py的窗口,并为test2.py创建另一个窗口

当然,如果我单独运行test1.py

^{pr2}$

然后打印所有错误消息。在

因为我在一个批处理中有几十个python文件,所以很难知道是哪一个导致了错误,而且我甚至不知道是什么错误,因为我看不到错误消息。在

当遇到错误并显示错误消息时,如何使其停止(但不关闭窗口)?在


Tags: 文件py程序消息错误exestartpython27
1条回答
网友
1楼 · 发布于 2024-04-19 22:32:29

我对Python不太了解。但是根据这个问题,它将消息输出到stdout和stderr,只有控制台应用程序才会这样做。在

但是如果python.exe确实是一个控制台应用程序,而不是一个Windows(GUI)应用程序,那么就没有必要使用start "title" /wait,因为这只会导致在一个单独的命令行解释器进程中调用控制台应用程序{},这就是为什么命令行解释器进程中没有显示{}的输出的原因在批处理文件中执行。在

我建议您尝试一下:

@echo off
echo Calling Python with script test1.py.
"C:\python27\python.exe" test1.py
if errorlevel 1 pause
echo Calling Python with script test2.py.
"C:\python27\python.exe" test2.py
if errorlevel 1 pause

有关错误处理,请参见示例:

请使用帮助页How do I search?和WWW搜索引擎上解释的堆栈溢出搜索功能。您肯定不会做其他Python用户还没有做的事情,因此也很可能经常会询问。在

我们希望发问者试图自己找到解决方案,而不是让别人做他们的工作,请参阅帮助页What topics can I ask about here?

相关问题 更多 >