32位python的bug:os.system返回码一直为0
2016-09-26 20:40
435 查看
32位python在windows上调用命令行(os.system或subprocess.Popen)。执行后,如果返回码太大,python取得的返回值也是0。此时无法判断执行成功还是失败,这个是32位python的bug。
以时间同步命令w32tm位例子
注意:此时命令执行错误返回码也是0。
通常成功的返回码才是0,这里执行错误返回码也是0。当要判断执行成功还失败时,这里便是个坑。
os.system文档
https://docs.python.org/2/library/os.html
以时间同步命令w32tm位例子
在cmd上执行
C:\WINDOWS\system32>w32tm /resync 发生下列错误: 服务尚未启动。 (0x80070426) C:\WINDOWS\system32>echo %errorlevel% -2147023834
在64位python上执行
>>> os.system("w32tm /resync") 发生下列错误: 服务尚未启动。 (0x80070426) -2147023834
在32位python上执行
>>> os.system("w32tm /resync") 发生下列错误: 服务尚未启动。 (0x80070426) 0
注意:此时命令执行错误返回码也是0。
通常成功的返回码才是0,这里执行错误返回码也是0。当要判断执行成功还失败时,这里便是个坑。
os.system文档
https://docs.python.org/2/library/os.html
相关文章推荐
- python中os.system()的返回值
- Python中os.system()的返回值
- python中os.system()的返回值
- python中os.system()的返回值
- python中os.system()的返回值
- python调用Shell脚本:os.system(cmd)或os.popen(cmd)的区别
- python调用Shell脚本:os.system(cmd)或os.popen(cmd)
- Python执行系统命令的方法 os.system(),os.popen(),commands
- Python执行系统命令的方法 os.system(),os.popen(),commands
- Python执行系统命令,os.system && os.popen && subprocess.Popen
- Python执行系统命令的方法 os.system(),os.popen(),commands
- python中那纠结的os.system()与空格处理
- python os.system os.popen 区别
- python中os.system()和os.popen()的返回值
- Python执行系统命令的方法 os.system(),os.popen(),commands
- python调用Shell脚本:os.system(cmd)或os.popen(cmd)
- python调用Shell脚本:os.system(cmd)或os.popen(cmd)【转】
- python调用Shell脚本:os.system(cmd)或os.popen(cmd)
- python调用Shell脚本:os.system(cmd)或os.popen(cmd),
- Python_API_Generic Operating System Services_os.environ