Python怎么使用OS模块调用cmd

  介绍

这篇文章给大家分享的是有关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;   祝辞祝辞祝辞

Python怎么使用OS模块调用cmd