Как получить код выхода из Python? - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть код 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%"

Из этих обоих кодов я всегда получаю 1 внутримой файл Log.txt.

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Заметное возвращение 0 и 1 в качестве прокомментированного ответа на решение roganjosh и Devanshu Misra объясняется тем, что ваше If-утверждение написано так из-за опечатки отступа (возможно, отсутствует редактор IDE?).

У вас есть:

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

Этот код всегда завершается с «1».В некоторых случаях он выходит сначала с «0», а затем с «1».

Это должно быть:

if Array_set and FBlist_set:
    print ("Found")
    exit(0)
else:
    print ("Not Found")
    exit(1)                 # <--- this exit(1) should be inside the "else" clause.

Нет необходимости указывать здесь использование «&» вместо«и», как это было сказано ранее roganjosh.В любом случае, следите за изменением цвета «и».Его синий цвет означает, что он стал участником выбора в операторе if.

... но следите за результатом FBlist = [''], так как он вызовет ложное срабатывание FBlist_set и, таким образом, выйдет из неправильного пути.

Наслаждайся; -)

0 голосов
/ 27 февраля 2019

Я думаю, что проблема в этой строке:

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) в качестве кода состояния.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...