介绍
这篇文章给大家分享的是有关Python怎么使用OS模块调用cmd的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
在OS模块中提供了两种调用cmd的方法,os.popen()和os.system ()
os.system (cmd)是在执行命令命令时需要打开一个终端,并且无法保存命令命令的执行结果。
os.popen (cmd,模式)打开一个与命令进程之间的管道。返回值是一个文件对象,可以读或者写(由模式决定,默认是& # 39;" # 39;)。如果模式为& # 39;" # 39;,可以使用此函数的返回值调用读()来获取命令命令的执行结果。
<强> os.system() 强>
定义:
def 系统(* args,, * * kwargs):, # real signature 未知 “““才能,Execute 从而command 拷贝a 外壳只“““ 通过才能
简单的来说就是在shell中执行命令命令
示例:
(venv), C: \ \用户TynamYang> python Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27, 2018,, 04:06:47), [MSC v.1914 32, bit (英特尔)],提醒win32 想Type “帮助”,,“copyright",,“credits",趁机“license" for more 信息。 在在在 在祝辞祝辞import 操作系统 祝辞祝辞祝辞,cmd =, & # 39; echo “小姐:am tynam" & # 39; 在祝辞祝辞,os.system (cmd) “小姐:am tynam" 祝辞祝辞祝辞
<强> os.popen() 强>
定义:
#, Supply os.popen () def popen (cmd,,模式=皉",,缓冲=1): if 才能;not  isinstance (cmd, str): ,,,raise TypeError (“invalid  cmd type (% s, expected 字符串)“,%,类型(cmd)) if 才能;mode  not 拷贝(“r",,“w"): ,,,raise ValueError (“invalid  mode % r", %,模式) if 才能;buffering ==, 0,趁机buffering is 没有: ,,,raise ValueError (“popen (), does not support unbuffered streams") import 子流程,才能io if 才能;mode ==,“r": ,,,proc =, subprocess.Popen (cmd, ,,,,,,,,,,,,,,,shell=True, ,,,,,,,,,,,,,,,stdout=subprocess.PIPE, ,,,,,,,,,,,,,,,bufsize=缓冲) ,,,return _wrap_close (io.TextIOWrapper (proc.stdout), proc) 其他的才能: ,,,proc =, subprocess.Popen (cmd, ,,,,,,,,,,,,,,,shell=True, ,,,,,,,,,,,,,,,stdin=subprocess.PIPE, ,,,,,,,,,,,,,,,bufsize=缓冲) ,,,return _wrap_close (io.TextIOWrapper (proc.stdin), proc)
也是在shell中执行命令命令,但是返回的结果却是一个文件对象,可以对其读写
<强>其中的三个参数含义:强>
命令——执行的壳命令
模式——模式权限,读(' " # 39;)或者写(w # 39;),默认为读(" # 39;)
bufsize——如果将缓冲值设置为0则不会进行缓冲。如果缓冲值为1则在访问文件时将执行行缓冲。如果将缓冲值设置为大于1的整数则以设置的缓冲大小执行缓冲操作。如果为负则缓冲区大小为系统默认值(默认行为)。
<强>示例:强>
在祝辞祝辞,import 操作系统 祝辞祝辞祝辞,cmd =, & # 39; echo “小姐:am tynam" & # 39; 祝辞祝辞祝辞,f =, os.popen (cmd, & # 39; " # 39;) 在祝辞祝辞,f.read () & # 39;“小姐:am tynam" \ n # 39; 祝辞祝辞祝辞