在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码。为了更好地控制运行的进程,可以使用win32process模块中的函数,如果想进一步控制进程,则可以使用ctype模块,直接调用kernel32.dll中的函数.
【方式一】使用os.system()函数运行其他程序
os模块中的system()函数可以方便地运行其他程序或者脚本,模式如下:
os.system(command)
- command: 要执行的命令,如果要向脚本传递参数,可以使用空格分割程序及多个参数。
示例如下:
-
>>>importos
-
>>>os.system('notepad')
-
0
-
>>>os.system('notepad1.txt')
-
0
【方式二】使用ShellExecute函数运行其他程序
除了使用os.system()函数外,还可以使用win32api模块中的ShellExecute()函数来运行其他程序,格式如下:
ShellExecute(hwnd, op, file, args, dir, show)
- hwnd: 父窗口的句柄,如果没有父窗口,则为0
- op : 要运行的操作,为open,print或者为空
- file: 要运行的程序,或者打开的脚本
- args: 要向程序传递的参数,如果打开的是文件则为空
- dir : 程序初始化的目录
- show: 是否显示窗口
示例如下:
-
>>>importwin32api
-
>>>win32api.ShellExecute(0,'open','notepad.exe','','',0)
-
>>>win32api.ShellExecute(0,'open','notepad.exe','','',1)
-
>>>win32api.ShellExecute(0,'open','notepad.exe','1.txt','',1)
-
>>>win32api.ShellExecute(0,'open','http://www.sohu.com','','',1)
-
>>>win32api.ShellExecute(0,'open','D:\\Opera.mp3','','',1)
-
>>>win32api.ShellExecute(0,'open','D:\\hello.py','','',1)
使用ShellExecute函数,就相当于在资源管理器中双击文件图标,系统会打开相应程序运行。
NOTE:
win32api安装http://sourceforge.net/projects/pywin32/files/pywin32/因我的是64的操作系统,所以下载了这个:pywin32-216.win-amd64-py2.7
【方式三】使用ShellExecute函数运行其他程序
创建进程:
为了便于控制通过脚本运行的程序,可以使用win32process模块中的CreateProcess()函数创建
一个运行相应程序的进程。其函数格式为:
CreateProcess(appName, cmdLine, proAttr, threadAttr, InheritHandle, CreationFlags, newEnv, currentDir, Attr)
- appName 可执行文件名
- cmdLine 命令行参数
- procAttr 进程安全属性
- threadAttr 线程安全属性
- InheritHandle 继承标志
- CreationFlags 创建标志
- currentDir 进程的当前目录
- Attr 创建程序的属性
示例如下:
-
>>>win32process.CreateProcess('C:\\Windows\\notepad.exe','',None,None,0,win32process.CREATE_NO_WINDOW,
-
None,None,win32process.STARTUPINFO())
-
(<PyHANDLE:892>,<PyHANDLE:644>,21592,18780)
结束进程:
可以使用win32process.TerminateProcess函数来结束已创建的进程, 函数格式如下:
TerminateProcess(handle, exitCode)
- handle 要操作的进程句柄
- exitCode 进程退出代码
或者使用win32event.WaitForSingleObject等待创建的线程结束,函数格式如下:
WaitForSingleObject(handle, milisecond)
- handle : 要操作的进程句柄
- milisecond: 等待的时间,如果为-1,则一直等待.
示例如下:
-
>>>importwin32process
-
>>>handle=win32process.CreateProcess('C:\\Windows\\notepad.exe','',None,None,0,win32process
-
.CREATE_NO_WINDOW,None,None,win32process.STARTUPINFO())
-
>>>win32process.TerminateProcess(handle[0],0)
-
或者
-
>>>importwin32event
-
>>>handle=win32process.CreateProcess('C:\\Windows\\notepad.exe','',None,None,0,
-
win32process.CREATE_NO_WINDOW,None,None,win32process.STARTUPINFO())
-
>>>win32event.WaitForSingleObject(handle[0],-1)
-
0
【方式四】使用ctypes调用kernel32.dll中的函数
使用ctypes模块可以让Python调用位于动态链接库的函数。
ctypes模块为Python提供了调用动态链接库中函数的功能。使用ctypes模块可以方便地调用由C语言编写的动态链接库,并向其传递参数。ctypes模块定义了C语言中的基本数据类型,并且可以实现C语言中的结构体和联合体。ctypes模块可以工作在Windows,Linux,Mac OS等多种操作系统,基本上实现了跨平台。
示例:
Windows下调用user32.dll中的MessageBoxA函数。
-
>>>fromctypesimport*
-
>>>user32=windll.LoadLibrary('user32.dll')
-
>>>user32.MessageBoxA(0,str.encode('Ctypesissosmart!'),str.encode('Ctypes'),0)
-
1
ctype模块中含有的基本类型与C语言类似,下面是几个基本的数据类型的对照:
---------------------------------------
Ctypes数据类型 C数据类型
---------------------------------------
c_char char
c_short short
c_int int
c_long long
c_float float
c_doule double
c_void_p void *
---------------------------------------
分享到:
相关推荐
本文将介绍四种在Python中运行其他程序的方式。 **方式一:使用os.system()函数** os模块中的os.system()函数是最常见的运行外部程序的方法。它接受一个字符串作为参数,该字符串包含了要执行的命令。例如: ```...
在Ubuntu系统中,后台持续运行Python程序是许多开发者和系统管理员需要掌握的重要技能。这尤其适用于需要长时间运行的任务,如数据分析、服务器监控或自动化任务。本文将深入探讨如何在Ubuntu环境下实现这一目标,并...
这在创建Python桌面应用时非常有用,因为它允许用户在没有Python环境的情况下运行程序。 综合以上分析,"Python小程序8"的学习内容可能涉及如何使用Python编写高效、实用的代码,包括但不限于模块化编程、异常处理...
Python 中可以使用多种方式来运行其他程序或脚本,下面将详细介绍四种方式。 方式一:使用 os.system() 函数 os 模块中的 system() 函数可以方便地运行其他程序或者脚本。其格式为 `os.system(command)`,其中 `...
一个用python写的监控脚本test1.py,用while True方式一直运行,在ssh远程(使用putty终端)时通过以下命令启动脚本: 代码如下: python test1.py & 现在脚本正常运行,通过ps能看到进程号,此时直接关闭ssh终端...
相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行、命令行窗口运行、开发工具上运行等,其中在不同的操作平台上还互不相同。今天,小编讲些Python基础的内容,以...
综上所述,Python4Delphi 结合 Python 3.8 运行环境,为 Delphi 开发者提供了一种强大的方式来利用 Python 语言的能力。通过理解如何配置和使用这个环境,开发者可以构建出功能丰富的、具有动态脚本支持的桌面应用...
本文实例讲述了Python实现运行其他程序的四种方式。分享给大家供大家参考,具体如下: 在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次...
通过py2exe,开发者可以将Python程序打包成独立的可执行文件,使得没有安装Python环境的用户也能运行程序。这种转换过程包括将Python解释器、依赖库和源代码一起打包,使得最终生成的执行文件可以在不依赖Python环境...
本文将介绍两种方法来解决Python运行时不显示DOS窗口的问题。 首先,我们需要明白DOS窗口是什么以及它在程序运行中的作用。DOS(Disk Operating System)窗口是Windows操作系统中命令提示符界面的一个窗口,用于...
- 保存文件,并在命令行中导航到该文件所在的目录,输入`python hello_world.py`运行程序。 4. **Python标准库**: Python的标准库包含大量预装模块,如os、sys、math等,它们提供了许多常用功能,无需额外安装...
Python实验四小游戏程序运行视频
在进行测量程序编制时,Python提供了两种主要的运行方式:交互式和文件式。 交互式运行是Python的一大特色,它允许用户直接与Python解释器进行交互。在这种模式下,用户可以逐行输入Python代码,并立即看到结果。...
3. 按照使用说明运行程序,可能需要提供打包的Python可执行文件路径。 总的来说,这个项目为C++开发者提供了一种方便的方法来利用Python的强大功能,同时避免了在目标系统上安装Python的复杂性和潜在的兼容性问题。...
Python实现背单词系统,优秀程序设计,部署运行简单 Python实现背单词系统,优秀程序设计,部署运行简单 Python实现背单词系统,优秀程序设计,部署运行简单 Python实现背单词系统,优秀程序设计,部署运行简单 ...
2 程序中的“运行表达式”仅可以运行 2*3*4 这样的表达式,不能运行脚本,运行脚本时,因为print方法没有办法输出到unigui界面,故添加参数 retdata,修改retdata.value来输出信息到unigui界面. 示例脚本 ...
例如,它可能包含了对Python运行时环境的更新,或者是对某些系统组件的补丁,使得打包的EXE可以在Win7上顺利执行。用户只需解压这个rar文件,然后运行其中的`.msu`文件(这是微软的一种更新包格式,通常用于Windows...
在Windows 10操作系统中,有时我们需要让Python程序在特定时间自动运行,比如进行定时数据抓取、自动化测试等。本文将详细介绍如何设置系统任务计划,使得Python脚本能够自动执行。 首先,你需要编写一个简单的...
Python是一种历史悠久且受欢迎的编程语言,它以简洁的语法和强大的功能库著称,尤其适合初学者入门。作为一门通用编程语言,Python的核心教学内容涵盖了分支、循环、函数等基本程序逻辑,以及丰富的函数库应用,这...