Question
博主最近做题时经常遇到这两个命令执行的函数,但是对这两个函数的不同还是挺迷糊的,遂问了gpt顺带记下来
Answer
os.popen
和 os.system
都是 Python 标准库中 os
模块提供的函数,用于执行操作系统命令。它们的主要区别在于返回值和输出结果的处理方式。
os.system
函数执行命令并返回命令的退出状态码,该状态码通常用于判断命令是否执行成功。如果命令执行成功,则返回值为 0,否则为非零值。os.system
函数不会直接返回命令的输出结果,而是将输出结果打印到标准输出流中(通常是终端),需要手动读取标准输出流才能获取输出结果。
python
import os
status = os.system('ls -l')
if status == 0:
print('命令执行成功!')
else:
print('命令执行失败!')
os.popen
函数执行命令并返回一个类文件对象,可以从该对象中读取命令的输出结果。该函数通常用于需要处理命令输出结果的场景,例如需要将输出结果存储到变量中、写入文件等等。
python
import os
output = os.popen('ls -l').read()
print(output)