【Python】尽量不使用os.system()
前言
os.system方法是os模块最基础的方法,其它的方法一般在该方法基础上封装完成。
os的system原理
- system函数可以将字符串转化成命令在服务器上运行;其原理是每一条system函数执行时,其会创建一个子进程在系统上执行命令行,子进程的执行结果无法影响主进程;
- 上述原理会导致当需要执行多条命令行的时候可能得不到预期的结果
原因
os.system 本身不会在shell代码报错时停止运行
import os
os.system("echo start run error..")
os.system("ls xxx")
os.system("echo error can not stop me!")
运行上述脚本
python os_system_example.py
start run error..
ls: cannot access xxx: No such file or directory
error can not stop me!
其他替代
os.popen
1.如果想获取控制台输出的内容,那就用os.popen的方法了,popen返回的是一个file对象,跟open打开文件一样操作了,r是以读的方式打开
import os
f = os.popen(r"python hello.py", "r")
d = f.read()
print(d)
print(type(d))
f.close()
|