首页 > 解决方案 > 如何从 Python 获取退出代码?

问题描述

我有一个python代码。我使用 cmd 文件来执行我的 python 代码。在 cmd 文件中,我将从我的 python 代码中获取错误级别。

infile = "FeatureByte.txt"
Array = ["6J", "yB", "ss", "11"]

with open(infile, "r") as input_file:
    output_list = []
    for rec in input_file.read().splitlines():
       rec = rec[:-3]  
       FBlist = [rec[i:i+2] for i in range(0, len(rec), 2)] 
       output_list.append(FBlist)
       print(output_list)

FBlist_set = set(FBlist)
Array_set = set (Array)

if Array_set & FBlist_set:
    print ("Found")
    exit(0)
else:
    print ("Not Found")
exit(1)

这是我的 cmd 文件:

set logfile=C:\Users\Log.txt
set PYTHONPATH="C:\Users\AppData\Local\Programs\Python\Python37-32"
set PYTHONEXE="%PYTHONPATH%\Python -B"


"C:\Users\AppData\Local\Programs\Python\Python37-32\python.exe" -B C:\Users\Desktop\Pyth.py

echo %ERRORLEVEL% >> "%logfile%"

从这两个代码中,我总是在我的 Log.txt 文件中得到 1。

标签: pythonbatch-file

解决方案


我认为问题出在这一行:

if Array_set & FBlist_set:
    print ("Found")
    exit(0)

将其更改为:

if Array_set and FBlist_set:
   print ("Found")
   exit(0)
else:
    print ("Not Found")
exit(1)

&您使用的是按位运算符而不是逻辑运算符and。因此,if条件失败,您将进入作为状态代码else返回给您的部分。exit(1)


推荐阅读