`
kanpiaoxue
  • 浏览: 1744764 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

python的sys.exit()的0-255问题

 
阅读更多

 

最近写了一个python脚本用到了sys.exit(exit_code) ,遇到一个奇怪的问题。当exit_code=256的时候,预期python调用sys.exit(exit_code) 之后退出进程之后的退出码应该是256,可实际情况退出码是0. 这引发我这边的程序异常,判断任务是运行成功的。

问题的根节就在:sys.exit(256) 的时候python的退出码是0. 我又验证了一下,sys.exit(exit_code)  中的exit_code是256的整数倍的时候,python进程退出码全部是0.

找了一些资料,发现这个是python自身的限制问题。 

 

如下的资料:

http://hk.uwenku.com/question/p-tfxlltaj-bke.html

https://stackoverflow.com/questions/4448339/how-to-bypass-the-0-255-range-limit-for-sys-exit-in-python

 

该如何处理 sys.exit(256)  python退出码是 0 的问题? 保证程序能够按预期退出?

做法:

1、可以记录一下退出码到日志,然后让python抛出异常,来退出python进程

2、使用sys.exit(exit_code) 的时候,让exit_code只能是 0 或者 1 ,避免其他退出码情况的出现

3、自己处理一下exit_code=256倍数的情况

4、参考上面的参考资料里面的做法,对exit_code进行移位处理

 

分享到:
评论

相关推荐

    详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别

    详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别 os._exit() 和 sys.exit() os._exit() vs sys.exit() 概述 Python的程序有两中退出方式:os._exit(), sys.exit()。本文介绍这两种方式的...

    Python中exit、return、sys.exit()等使用实例和区别

    主要介绍了Python中exit、return、sys.exit()等使用实例和区别,本文是一个实际项目中的总结,需要的朋友可以参考下

    python命令行参数sys.argv使用示例

    > 3: print “Usage: ” + sys.argv[0] + “file1 file2” sys.exit(-1) file1 = sys.argv[1]file2 = sys.argv[2] list1 = {}for line in open(file1): list1[line.split()[0]] = 1 for line in open(file2): ...

    PYTHON学习教程-08-多线程.zip

    前情回顾 1.epoll模型 : 效率高 , 触发方式更多 2.本地套接字 AF_UNIX 本地两个进程间的消息通信 3.多任务编程 * 并行 和 并发 * 进程 线程 4. 多进程编程 ... os._exit() sys.exit() 8. 孤儿进程和僵尸进程

    Python的几种主动结束程序方式

    对于如何结束一个Python程序或者用Python操作去结束一个进程等,Python本身给出了好几种方法,而这些方式也存在着一些区别,对相关的几种方法看了并实践了下,同时也记录下。 参考: ...sys.exit(0

    python2710.chm

    源代码#!/usr/bin/env python import sys from lib2to3.main import main sys.exit(main("lib2to3.fixes")) #!/usr/bin/env python import sys from lib2to3.main import main ...sys.exit(main("lib2to3.fixes"))

    [报错解决]安装xgboost报错python setup.py egg_info Check the logs for full command output.

    MacOS下安装xgboost和lightGBM报错,之前安装成功,换了python环境后安装失败 ... sys.argv[0] = ‘”’”’/private/tmp/pip-install-iebpqutp/xgboost/setup.py’”’”’; file=’”’”’/private/tmp/pip-install-

    Python实现字典去除重复的方法示例

    本文实例讲述了Python实现字典去除重复的方法。分享给大家供大家参考,具体如下: #!/usr/bin/env python ... sys.exit() why = 'why.txt' for i in xrange(len(sys.argv)): if(i>=1): other = s

    图片打标签代码(python)(深度学习需要用到!)

    # sys.exit(1) #BASE_PATH=sys.argv[1] BASE_PATH="E:/k" SEPARATOR=";" fh = open("C:\\Users\\lbn\\Desktop\\aa.txt",'w') for dirname, dirnames, filenames in os.walk(BASE_PATH): for ...

    【Python 标准库】系统相关的参数和函数库 — sys

    部分常用函数:1、sys.argv2、sys.path3、sys.platform4、sys.getwindowsversion()5、sys.version6、sys.exit(n)7、sys.modules8、sys.stdin / stdout / stderr 1、sys.argv 获取当前正在执行的命令行参数的参数...

    python中sys模块是做什么用的

    python中的sys是提供了一... sys.exit([arg]): 程序中间的退出,arg=0为正常退出。 sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。 sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时

    vs_community__1022223156.1578415119.exe

    安装Scrapy出错,需要安装Microsoft Visual C++ 14.0 ERROR: Command errored out with exit status 1: 'd:\python3.8.1\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\z ...

    机器学习(股票),基于机器学习算法支持向量机SVM的交易策略

    sys.exit(-1) ''' 本策略选取了七个特征变量组成了滑动窗口长度为15天的训练集,随后训练了一个二分类(上涨/下跌)的支持向量机模型. 若没有仓位则在每个星期一的时候输入标的股票近15个交易日的特征变量进行预测,并...

    Python基础教程(第二版)(第十-十一章).pdf

    Python基础教程(第⼆版)(第⼗~⼗⼀章... sys.exit(int):⼤多数使⽤默认值0⽤来标识程序成功运⾏,也可以提供字符串信息⽤作错误信息。 3. sys.modules:映射模块名到载⼊模块的字典。 4. sys.path:字符串列表,是

    Python sys模块常用方法解析

    sys.exit([arg]): 程序退出,arg 为 0 正常退出。 sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。 sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中...

    python测试

    ",True,(0,0,128),(0,255,0)) #显示文字及坐标 texr=tex.get_rect() texr.center=(10,250) #初始化方向 dire = "right" #设置循环 while 1: #绘制文字 screen.blit(tex,texr) screen.fill((0,0,0)) ...

    python模块之sys模块和序列化模块(实例讲解)

    sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 ...

Global site tag (gtag.js) - Google Analytics