Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

Tôi nhận được một tin nhắn nói script xyz.py returned exit code 0. Điều đó có nghĩa là gì?

Các mã thoát trong Python có nghĩa là gì? Có bao nhiêu? Cái nào quan trọng?

Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

T. Zengerink

4.2195 Huy hiệu vàng29 Huy hiệu bạc31 Huy hiệu Đồng5 gold badges29 silver badges31 bronze badges

Đã hỏi ngày 12 tháng 11 năm 2008 lúc 20:43Nov 12, 2008 at 20:43

2

Bạn đang tìm kiếm các cuộc gọi đến sys.exit() trong tập lệnh. Đối số cho phương thức đó được trả về môi trường dưới dạng mã thoát.

Có khả năng tập lệnh không bao giờ gọi phương thức thoát và 0 là mã thoát mặc định.

Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

Đã trả lời ngày 12 tháng 11 năm 2008 lúc 20:50Nov 12, 2008 at 20:50

Dave Costadave CostaDave Costa

46.5k8 Huy hiệu vàng56 Huy hiệu bạc71 Huy hiệu đồng8 gold badges56 silver badges71 bronze badges

3

Từ tài liệu cho

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
0:

Đối số tùy chọn ARG có thể là một số nguyên cho trạng thái thoát (mặc định về 0) hoặc loại đối tượng khác. Nếu đó là một số nguyên, Zero được coi là chấm dứt thành công và bất kỳ giá trị khác nào được coi là kết thúc bất thường của các vỏ và tương tự. Hầu hết các hệ thống yêu cầu nó nằm trong phạm vi 0-127 và tạo ra kết quả không xác định khác. Một số hệ thống có một quy ước để gán ý nghĩa cụ thể cho các mã thoát cụ thể, nhưng chúng thường kém phát triển; Các chương trình UNIX thường sử dụng 2 cho lỗi cú pháp dòng lệnh và 1 cho tất cả các loại lỗi khác.

Một ví dụ trong đó các mã thoát được sử dụng trong các tập lệnh shell. Trong bash, bạn có thể kiểm tra biến đặc biệt

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
1 cho trạng thái thoát cuối cùng:

me@mini:~$ python -c ""; echo $?
0
me@mini:~$ python -c "import sys; sys.exit(0)"; echo $?
0
me@mini:~$ python -c "import sys; sys.exit(43)"; echo $?
43

Cá nhân tôi cố gắng sử dụng các mã thoát mà tôi tìm thấy trong

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
2 (trên hệ thống Linux), nhưng tôi không biết đây có phải là điều đúng đắn không.

Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

Đã trả lời ngày 12 tháng 11 năm 2008 lúc 21:31Nov 12, 2008 at 21:31

EigireigirEigir

1.8992 Huy hiệu vàng14 Huy hiệu bạc19 Huy hiệu đồng2 gold badges14 silver badges19 bronze badges

4

Đối với hồ sơ, bạn có thể sử dụng mã thoát tiêu chuẩn POSIX được xác định ở đây.

Example:

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok

Đã trả lời ngày 11 tháng 6 năm 2015 lúc 8:53Jun 11, 2015 at 8:53

Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

Laffustelaffustelaffuste

15,5K7 Huy hiệu vàng79 Huy hiệu bạc88 Huy hiệu đồng7 gold badges79 silver badges88 bronze badges

4

Có một mô -đun

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
3 xác định mã thoát tiêu chuẩn:

Ví dụ: quyền bị từ chối là mã lỗi 13:Permission denied is error code 13:

import errno, sys

if can_access_resource():
    do_something()
else:
    sys.exit(errno.EACCES)

Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

Asclepius

52.9K16 Huy hiệu vàng154 Huy hiệu bạc137 Huy hiệu đồng16 gold badges154 silver badges137 bronze badges

Đã trả lời ngày 13 tháng 11 năm 2008 lúc 7:32Nov 13, 2008 at 7:32

OlioliOli

14.8k8 Huy hiệu vàng30 Huy hiệu bạc36 Huy hiệu đồng8 gold badges30 silver badges36 bronze badges

3

Mã thoát của 0 thường có nghĩa là "Không có gì sai ở đây." Tuy nhiên, nếu lập trình viên của tập lệnh không tuân theo quy ước, bạn có thể phải tham khảo nguồn để xem ý nghĩa của nó. Thông thường một giá trị khác không được trả về dưới dạng mã lỗi.

Đã trả lời ngày 12 tháng 11 năm 2008 lúc 20:46Nov 12, 2008 at 20:46

SAM CORDERSAM CORDERSam Corder

5.3223 Huy hiệu vàng24 Huy hiệu bạc 30 Huy hiệu Đồng3 gold badges24 silver badges30 bronze badges

Câu trả lời là "phụ thuộc vào mã thoát có nghĩa là gì".

Tuy nhiên, trong hầu hết các trường hợp, điều này có nghĩa là "mọi thứ đều ổn".


Tôi thích Posix:

Vì vậy, trong vỏ, tôi sẽ gõ:

python script.py && echo 'OK' || echo 'Not OK'

Nếu tập lệnh Python của tôi gọi

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
4, shell sẽ trả về 'ok'

Nếu tập lệnh Python của tôi gọi

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
5 (hoặc bất kỳ số nguyên khác không), shell sẽ trả về 'không ổn'.

Công việc của bạn là thông minh với vỏ và đọc tài liệu (hoặc nguồn) cho tập lệnh của bạn để xem mã thoát có nghĩa là gì.

Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

Đã trả lời ngày 24 tháng 1 năm 2017 lúc 18:22Jan 24, 2017 at 18:22

FlipMcfflipMCFFlipMcF

12.4K2 Huy hiệu vàng34 Huy hiệu bạc44 Huy hiệu đồng2 gold badges34 silver badges44 bronze badges

1

Sau mã thoát UNIX 0 - Để thành công / OK, 1 - Không thành công / lỗi. Bạn có thể chỉ cần sử dụng cuộc gọi

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
6 hoặc
import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
7 mà không cần nhập mô -đun
import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
8.0 - for success / OK, 1 - non success / error. You could simply use
import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
6 or
import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
7 call without importing
import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
8 module.

Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

Đã trả lời ngày 2 tháng 7 năm 2020 lúc 12:06Jul 2, 2020 at 12:06

Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

Lukasz Dynowskilukasz DynowskiLukasz Dynowski

9,5236 huy hiệu vàng68 Huy hiệu bạc106 Huy hiệu đồng6 gold badges68 silver badges106 bronze badges

1

Nếu bạn muốn sử dụng mã thoát POSIX tiêu chuẩn, hãy xem gói

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
9 trên PYPI.

Cài đặt gói:

$ pip install exitstatus

Sử dụng trong mã của bạn:

import sys
from exitstatus import ExitStatus

sys.exit(ExitStatus.success)

Đã trả lời ngày 10 tháng 6 năm 2016 lúc 21:17Jun 10, 2016 at 21:17

Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

Phoenixphoenixphoenix

6.7384 Huy hiệu vàng37 Huy hiệu bạc44 Huy hiệu đồng4 gold badges37 silver badges44 bronze badges

Các mã thoát chỉ có ý nghĩa như được gán bởi tác giả tập lệnh. Truyền thống Unix là mã thoát 0 có nghĩa là 'thành công', bất cứ điều gì khác là thất bại. Cách duy nhất để chắc chắn rằng mã thoát cho một tập lệnh nhất định có nghĩa là kiểm tra chính tập lệnh.

Đã trả lời ngày 12 tháng 11 năm 2008 lúc 20:46Nov 12, 2008 at 20:46

SAM CORDERSAM CORDERHarper Shelby

5.3223 Huy hiệu vàng24 Huy hiệu bạc 30 Huy hiệu Đồng2 gold badges43 silver badges51 bronze badges

Câu trả lời là "phụ thuộc vào mã thoát có nghĩa là gì".

Tuy nhiên, trong hầu hết các trường hợp, điều này có nghĩa là "mọi thứ đều ổn".

Tôi thích Posix:

Vì vậy, trong vỏ, tôi sẽ gõ:should not be used in programs.

Then:

exit(code=None)

Nếu tập lệnh Python của tôi gọi

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
4, shell sẽ trả về 'ok'

Nếu tập lệnh Python của tôi gọi

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
5 (hoặc bất kỳ số nguyên khác không), shell sẽ trả về 'không ổn'.

Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

Công việc của bạn là thông minh với vỏ và đọc tài liệu (hoặc nguồn) cho tập lệnh của bạn để xem mã thoát có nghĩa là gì.

Đã trả lời ngày 24 tháng 1 năm 2017 lúc 18:2235 gold badges176 silver badges248 bronze badges

Đã trả lời ngày 12 tháng 2 năm 2018 lúc 14:41Feb 12, 2018 at 14:41

yếuCamelweakcamelweakcamel

611 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges

Các lệnh hệ điều hành có mã thoát. Tìm kiếm mã thoát Linux để xem một số tài liệu về điều này. Shell sử dụng mã thoát để quyết định xem chương trình có hoạt động hay không, hoặc không thành công. Có một số nỗ lực để tạo mã thoát tiêu chuẩn (hoặc ít nhất là thường được sử dụng). Xem bài đăng kịch bản shell nâng cao này.

Hướng dẫn what is exit code in python? - mã thoát trong python là gì?

Đã trả lời ngày 12 tháng 11 năm 2008 lúc 23:12Nov 12, 2008 at 23:12

S.LottS.LottS.Lott

378K79 Huy hiệu vàng503 Huy hiệu bạc773 Huy hiệu Đồng79 gold badges503 silver badges773 bronze badges

Mã thoát trong nhiều ngôn ngữ lập trình là tùy thuộc vào các lập trình viên. Vì vậy, bạn phải xem mã nguồn chương trình của bạn (hoặc hướng dẫn sử dụng). Zero thường có nghĩa là "mọi thứ đều ổn".

Đã trả lời ngày 12 tháng 11 năm 2008 lúc 20:48Nov 12, 2008 at 20:48

DavidedavideDavide

16.6K11 Huy hiệu vàng50 Huy hiệu bạc67 Huy hiệu đồng11 gold badges50 silver badges67 bronze badges

Giải pháp thay thế: Để đối mặt với lỗi trong Gitlab-CI (https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27668), tôi chỉ cần tạo một tệp có mã lỗi:

Python phần:

with open("error_code.log", 'w') as file:
   file.write('2') # this will trigger a warning

Và sau đó trong tệp YML:

.step_name:
  variables:
    # my vars
  script:
    - python my_code.py arg1 arg2
    - exit `cat error_code.log`
  allow_failure:
    exit_codes:
      - 2

Đã trả lời ngày 3 tháng 11 lúc 12:39Nov 3 at 12:39

Để cho phép các trình xử lý ngoại lệ và những thứ khác thực hiện, tôi khuyên bạn nên tắt máy với

import sys, os

try:
    config()
except:
    sys.exit(os.EX_CONFIG) 
try:
    do_stuff()
except:
    sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
6 được tích hợp thay vì sử dụng sys.exit() kết thúc quá trình một cách đột ngột.

Đã trả lời ngày 10 tháng 3 năm 2017 lúc 13:12Mar 10, 2017 at 13:12

Vidstigevidstigevidstige

12.1k8 Huy hiệu vàng66 Huy hiệu bạc107 Huy hiệu Đồng8 gold badges66 silver badges107 bronze badges

4

Thoát 0 và thoát 1 Python là gì?

Thoát (0) có nghĩa là thoát sạch mà không có bất kỳ lỗi / vấn đề nào. Thoát (1) có nghĩa là có một số vấn đề / lỗi / vấn đề và đó là lý do tại sao chương trình đang thoát. Đây không phải là Python cụ thể và khá phổ biến. Một mã thoát khác không được coi là một lối thoát bất thường và đôi khi, mã lỗi cho biết vấn đề là gì.. exit(1) means there was some issue / error / problem and that is why the program is exiting. This is not Python specific and is pretty common. A non-zero exit code is treated as an abnormal exit, and at times, the error code indicates what the problem was.

Mã thoát có nghĩa là gì?

Mã thoát hoặc trạng thái thoát là một số được thực thi trả về để hiển thị liệu nó có thành công hay không.Điều này đôi khi cũng được gọi là mã trả lại, hoặc trong một số trường hợp, một mã lỗi, mặc dù thuật ngữ ở đây có thể hơi khác nhau.a number that is returned by an executable to show whether it was successful. This is also sometimes called a return code, or in some cases, an error code, although the terminology here may be slightly different.

Làm cách nào để lấy mã thoát trong Python?

Bạn có thể đặt mã thoát cho một quy trình thông qua SYS.EXIT () và truy xuất mã thoát thông qua thuộc tính EXITCODE trên đa xử lý.via the exitcode attribute on the multiprocessing.

Mã thoát 5 trong Python là gì?

Mã thoát 5. Không có bài kiểm tra nào được thu thập.Nếu bạn muốn tùy chỉnh mã thoát trong một số kịch bản, đặc biệt khi không có thử nghiệm nào được thu thập, hãy xem xét sử dụng plugin pytest-custom_exit_code.No tests were collected. If you would like to customize the exit code in some scenarios, specially when no tests are collected, consider using the pytest-custom_exit_code plugin.