Python | 调用系统命令

在Python里面,我们最经常使用调用系统命令的函数,是os模块的system()和popen()。

 

但是两个有一些区别,要在根据情况去选择。

 

system():

    返回值:0(成功),1,2

    为同步调用,直到命令执行结束才会返回是否成功标志,并不能反馈信息。

 

    优点:

        有执行状态返回值,可以判断到是否执行成功。

 

 

    缺点:

        不适合用于想使用调用系统命令的返回值的情况。

 

popen():

    相当于Linux下的echo,使用于想调用系统命令的情况。函数返回是 file read 的对象,对其进行读取read、readlines等操作可以看到执行的输出。

但是调用失败是不会有结果返回的。

 

   优点:

        很适合想利用返回值的情况。

    缺点:

        不能知道是否执行成功,有一点不可控。

 

例子:

# 想使用date返回值,用system就不太适合,因为取值取不到想要的日期,而是
# 取到0
>>> os.system("date +'%Y-%m-%d'")
2019-07-17
0
# 这时应该去使用 popen、
>>> os.popen("date +'%Y-%m-%d'")

​
# 我们需要加上read()去读取结果
>>> os.popen("date +'%Y-%m-%d'").read().split()[0]
'2019-07-17'


 

 

你可能感兴趣的:(Python)