python怎么调用其他软件,python程序调用另一个python程序
在Python中,使用os模块来运行其他脚本或程序是很方便的,这样其他脚本或程序提供的功能就可以直接在脚本中使用,而不必重新编写代码来实现这些功能。为了更好地控制运行进程,可以使用win32process模块中的函数。如果你想进一步控制这个过程,你可以使用ctype模块直接调用kernel32.dll中的函数。下面介绍四种方式:
1.os.system()函数
os模块中的system()函数可以方便地以下列模式运行其他程序或脚本:
OS。System (Command): Command3360要执行的命令。如果要向脚本传递参数,可以用空格分割程序和多个参数。
示例:
#打开记事本
操作系统(“记事本”)
#用记事本打开aa.txt
OS . system( notepad aa . txt )# aa . txt文件必须在当前程序目录中。
#直接打开aa.txt
操作系统( aa.txt )
#直接打开Excel文件
操作系统( aa.xlsx )
#直接打开Word文件
操作系统( bb.docx )
Path= test.xlsx
#打开包含中文的文件。
OS . system(file path . decode( utf8 )。encode (gbk)) 2、ShellExecute函数
使用win32api模块中的ShellExecute()函数运行其他程序,格式如下
ShellExecute(hwnd,op,file,args,dir,show)
父窗口的句柄,如果没有父窗口,则为0。
Op:要运行的操作是open、print或empty。
File:要运行的程序,或打开脚本
Args:要传递给程序的参数,如果打开了文件,则为null。
目录由dir :程序初始化
show:显示窗口吗?
使用ShellExecute函数相当于在资源管理器中双击文件图标,系统会打开相应的程序运行。
导入win32api
Win32.shellexecute (0, open , notepad.exe ,,,0) #后台执行
Win32.shellexecute (0, open , notepad.exe ,,,1) #前台打开
Win32.shellexecute (0, open , notepad.exe , wmi.txt ,,1) #打开一个文件
Win32 API.shellexecute (0, open , iexplore.exe ,,,1) #打开IE浏览器
Win32.shellexecute (0, open , iexplore.exe , 3359 www.baidu.com/,,1)#用IE浏览器打开百度网址
Win32.shellexecute (0, open , mspaint.exe , wxqr.png ,,1) #打开图片wxqr.png3,用系统附件附带的绘图创建进程。
创建流程:
为了控制通过脚本运行的程序,可以使用win32process模块中的CreateProcess()函数创建一个运行相应程序的进程。它的函数格式是3360。
CreateProcess(appName,cmdLine,proAttr,threadAttr,InheritHandle,CreationFlags,newEnv,currentDir,Attr)
AppName:可执行文件名称
命令行:命令行参数
ProcAttr:流程安全性属性
ThreadAttr:线程安全属性
InheritHandle:继承标志
CreationFlags:创建标志
CurrentDir:进程的当前目录
Attr:创建程序的属性。
结束流程:
可以使用win32进程。TerminateProcess函数来结束创建的进程。函数格式如下:3360
TerminateProcess(handle,exitCode)
Handle:要操作的进程句柄。
代码:进程退出代码。
或者使用win32event。WaitForSingleObject等待创建的线程结束。函数格式如下:
WaitForSingleObject(句柄,毫秒)
Handle :要操作的进程的句柄。
毫秒:等待时间,如果是-1,就一直等。
导入win32进程
#打开记事本并获取其句柄。
handle=win32process。CreateProcess(r c : \ Windows \ notepad . exe ,,None,None,0,win32process。CREATE_NO_WINDOW,None,None,win32process。STARTUPINFO())
时间.睡眠(4)
#终止流程
win32进程。TerminateProcess(句柄[0],0)
导入win32事件
#等待过程结束
打印32事件。WaitForSingleObject(句柄[0],-1) 4。使用ctypes调用kernel32.dll中的函数。
ctypes模块允许Python调用位于动态链接库中的函数。
Ctypes模块为Python提供了调用动态链接库中函数的功能。ctypes模块可以方便地调用C语言编写的动态链接库,并向其传递参数。
Ctypes模块定义了C语言中的基本数据类型,可以实现C语言中的结构和关联。Ctypes模块可以在Windows、Linux、Mac OS等操作系统下工作,基本实现了跨平台。
示例:
Windows在user32.dll调用MessageBoxA函数。
从ctypes导入*
user32=windll。LoadLibrary(user32.dll )
a=用户32。MessageBoxA(0,str.encode(Hello Ctypes!),str.encode(Ctypes ),0)
打印一份
更多Python相关技术文章,请访问Python教程专栏学习!这就是python调用其他程序的细节。更多信息请关注热门IT软件开发工作室其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。