What is the return value of os.system() in Python?(Python 中 os.system() 的返回值是什么?)
问题描述
我遇到了这个:
>>> import os
>>> os.system('ls')
file.txt README
0
os.system()
的返回值是什么一个>?为什么我得到 0?
What is return value of os.system()
? Why I get 0?
推荐答案
os.system
依赖于操作系统.
The return value of os.system
is OS-dependant.
在 Unix 上,返回值是一个 16 位数字,其中包含两条不同的信息.来自文档:
On Unix, the return value is a 16-bit number that contains two different pieces of information. From the documentation:
一个16位的数字,低字节是杀死进程的信号号,高字节是退出状态(如果信号号为零)
a 16-bit number, whose low byte is the signal number that killed the process, and whose high byte is the exit status (if the signal number is zero)
所以如果信号号(低字节)为0,理论上将结果移位8位(result >>8
)得到错误码是安全的.函数 os.WEXITSTATUS
确实正是这个.如果错误码为0,则通常表示进程无错误退出.
So if the signal number (low byte) is 0, it would, in theory, be safe to shift the result by 8 bits (result >> 8
) to get the error code. The function os.WEXITSTATUS
does exactly this. If the error code is 0, that usually means that the process exited without errors.
在 Windows 上,文档指定 os.system
的返回值取决于 shell.如果shell是cmd.exe
(默认),则值为进程的返回码.同样,0 表示没有错误.
On Windows, the documentation specifies that the return value of os.system
is shell-dependant. If the shell is cmd.exe
(the default one), the value is the return code of the process. Again, 0 would mean that there weren't errors.
对于其他错误代码:
- 在 Linux 上
- 在 Windows 上李>
这篇关于Python 中 os.system() 的返回值是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Python 中 os.system() 的返回值是什么?


- padding='same' 转换为 PyTorch padding=# 2022-01-01
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01
- python-m http.server 443--使用SSL? 2022-01-01
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- 沿轴计算直方图 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01
- pytorch 中的自适应池是如何工作的? 2022-07-12
- 如何将一个类的函数分成多个文件? 2022-01-01