Python的学习(八)----py脚本中调用应用程序

Python的学习(八)----py脚本中调用应用程序

在Python脚本执行过程中,如需要运行另一个程序,或执行相关命令时,一般有几种方法:

1. os.system(command)

在子终端中执行系统命令command, 在命令执行完后退出并返回执行状态。无法捕捉命令执行过程返回的具体信息

2. os.popen(command, type)

打开一个与command进程之间的管道,并返回命令执行后的信息对象,并通过type指定管道流的方向,来读或写命令的执行结果

说明:os.system 与 os.popen 均能执行系统命令,二者之间的区别在于返回信息

system只能返回执行后的状态信息,popen则可以通过对象访问获取执行结果,例如:

>>> import os
>>> p = os.system('ls')
>>> p
0
>>> p = os.popen('ls').readlines()
>>> p
Out[10]:
['test.c\n',
 'conf.ini\n',
....

3. subprocess.popen

subprocess模块可以创建新的进程,通过与新建进程的相关管道(输入、输出等)连通,可获取命令执行的返回 状态,

其意在取代现有的os.system os.popen等函数, 主要提供一个类Popen

class 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)

Popen类中有Popen.stdin, Popen.stdout, Popen.stderr三个相关属性分别表示子程序的标准输入、输出、错误,可通过属性实现与子进程通信

eg: subprocess.Popen(command, shell=True, stdin=subprocess.PIPE)

4. win32api模块

Python本身是没有自带访问windows系统API库的,需自己下载名为pywin32的库文件并安装后,

1. ShellExecute

导入win32api模块后,运用ShellExecute()函数来运行其他程序

eg:import win32api 
    ShellExecute(hwnd, ip, file, params, dir, bShow)

2. CreateProcess

为了便于控制通过脚本运行的程序,可通过使用CreateProcess()函数运行

 CreateProcess(appName, commandLine , processAttributes , threadAttributes , bInheritHandles ,dwCreationFlags , newEnvironment , currentDirectory , startupinfo )

说明:有了已创建进程的句柄就可以使用win32api.TerminateProcess来结束进程


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值