您的当前位置:首页正文

python中shell的调用

2024-08-01 来源:化拓教育网

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

1.os.system

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

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

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

实例

import os
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)

以上就是python中shell的调用,可以说两种方法各有利弊,大家在使用时可以根据自己的需要来选择。有关调用shell的方法还有很多,大家可以在课外了解一下。