python中shell的调用

我们在执行一些简单的脚本语言时,python简洁的优势就展现出来了。但是也有一些多层任务的叠加,就需要我们借用shell来完成了。本篇整理了两种shell调用的方法:system和popen(),这两个函数也是在执行命令时会调用到的。下面我们就这两种方法展开详细的讲解。

1.os.system

直接在终端输出执行结果,返回执行状态0或者1。

此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示。这实际上是使用C标准库函数system()实现的;

缺点:这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果;

实例

importos
os.system('cd/')

2.os.popen()

打开一个与command进程之间的管道;这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是 ‘r’)。如果mode为’r’,可以使用此函数的返回值调用read()来获取command命令的执行结果。

os.system(cmd)或者os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际是使用时视情况而选择;

实例

subprocess.Popen(args,bufsize=0,executable=None,stdin=None,stdout=None,
stderr=None,preexec_fn=None,close_fds=False,shell=False,cwd=None,env=None,
universal_newlines=False,startupinfo=None,creationflags=0)

发表回复