使用python控制其他软件运行并操作处理数据_Python 运行其他程序

本文详细介绍了如何使用Python的os、win32api和ctypes模块来控制其他程序的运行,包括使用os.system()、ShellExecute()和CreateProcess()函数启动和控制进程。示例中展示了如何打开记事本、浏览器、播放音乐文件以及调用动态链接库中的函数。通过对进程句柄的操作,可以实现对程序流程的修改,例如在C语言编写的程序中改变条件判断指令。
摘要由CSDN通过智能技术生成

10.4 运行其他程序

在Python中可以方便地使用os模块运行其他的脚本或者程序,这样就可以在脚本中直接使用其他脚本,或者程序提供的功能,而不必再次编写实现该功能的代码。为了更好地控制运行的进程,可以使用win32process模块中的函数。如果想进一步控制进程,则可以使用ctype模块,直接调用kernel32.dll中的函数。

10.4.1 使用os.system函数运行其他程序

os模块中的system()函数可以方便地运行其他程序或者脚本。其函数原型如下所示。

os.system(command)

其参数含义如下所示。

·     command 要执行的命令,相当于在Windows的cmd窗口中输入的命令。如果要向程序或者脚本传递参数,可以使用空格分隔程序及多个参数。

以下实例实现通过os.system()函数打开系统的记事本程序。

>>> import os

# 使用os.system()函数打开记事本程序

>>> os.system('notepad')

0 # 关闭记事本后的返回值

# 向记事本传递参数,打开python.txt文件

>>> os.system('notepad python.txt')

10.4.2 使用ShellExecute函数运行其他程序

除了使用os模块中的os.system()函数以外,还可以使用win32api模块中的ShellExecute()函数。其函数如下所示。

ShellExecute(hwnd, op , file , params , dir , bShow )

其参数含义如下所示。

·     hwnd:父窗口的句柄,如果没有父窗口,则为0。

·     op:要进行的操作,为“open”、“print”或者为空。

·     file:要运行的程序,或者打开的脚本。

·     params:要向程序传递的参数,如果打开的为文件,则为空。

·     dir:程序初始化的目录。

·     bShow:是否显示窗口。

以下实例使用ShellExecute函数运行其他程序。

>>> import win32api

# 打开记事本程序,在后台运行,即显示记事本程序的窗口

>>> win32api.ShellExecute(0, 'open', 'notepad.exe', '','',0)

42

# 打开记事本程序,在前台运行

>>> win32api.ShellExecute(0, 'open', 'notepad.exe', '','',1)

42

# 向记事本传递参数,打开python.txt

>>> win32api.ShellExecute(0, 'open', 'notepad.exe', 'python.txt','',1)

42

# 在默认浏览器中打开http://www.python.org网站

>>> win32api.ShellExecute(0, 'open', 'http://www.python.org', '','',1)

42

# 在默认的媒体播放器中播放E:\song.wma

>>> win32api.ShellExecute(0, 'open', 'E:\\song.wma', '','',1)

42

# 运行位于E:\book\code目录中的MessageBox.py脚本

>>> win32api.ShellExecute(0, 'open', 'E:\\book\\code\\MessageBox.py', '','',1)

42

可以看出,使用ShellExecute函数,就相当于在资源管理器中双击文件图标一样,系统会打开相应的应用程序执行操作。

10.4.3 使用CreateProcess函数运行其他程序

为了便于控制通过脚本运行的程序,可以使用win

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值