`
truelove12358
  • 浏览: 77531 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Python中四种运行其他程序的方式

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


方式一使用os.system()函数运行其他程序

os模块中的system()函数可以方便地运行其他程序或者脚本,模式如下:

os.system(command)

  • command: 要执行的命令,如果要向脚本传递参数,可以使用空格分割程序及多个参数。

示例如下:
  1. >>>importos
  2. >>>os.system('notepad')#打开记事本程序.
  3. 0
  4. >>>os.system('notepad1.txt')#打开1.txt文件,如果不存在,则创建.
  5. 0
方式二使用ShellExecute函数运行其他程序
除了使用os.system()函数外,还可以使用win32api模块中的ShellExecute()函数来运行其他程序,格式如下:
ShellExecute(hwnd, op, file, args, dir, show)
  • hwnd: 父窗口的句柄,如果没有父窗口,则为0
  • op : 要运行的操作,为open,print或者为空
  • file: 要运行的程序,或者打开的脚本
  • args: 要向程序传递的参数,如果打开的是文件则为空
  • dir : 程序初始化的目录
  • show: 是否显示窗口
示例如下:
  1. >>>importwin32api
  2. >>>win32api.ShellExecute(0,'open','notepad.exe','','',0)#后台执行
  3. >>>win32api.ShellExecute(0,'open','notepad.exe','','',1)#前台打开
  4. >>>win32api.ShellExecute(0,'open','notepad.exe','1.txt','',1)#打开文件
  5. >>>win32api.ShellExecute(0,'open','http://www.sohu.com','','',1)#打开网页
  6. >>>win32api.ShellExecute(0,'open','D:\\Opera.mp3','','',1)#播放视频
  7. >>>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 创建程序的属性

示例如下:
  1. >>>win32process.CreateProcess('C:\\Windows\\notepad.exe','',None,None,0,win32process.CREATE_NO_WINDOW,
  2. None,None,win32process.STARTUPINFO())
  3. (<PyHANDLE:892>,<PyHANDLE:644>,21592,18780)#函数返回进程句柄、线程句柄、进程ID以及线程ID


结束进程:

可以使用win32process.TerminateProcess函数来结束已创建的进程, 函数格式如下:

TerminateProcess(handle, exitCode)
  • handle 要操作的进程句柄
  • exitCode 进程退出代码

或者使用win32event.WaitForSingleObject等待创建的线程结束,函数格式如下:

WaitForSingleObject(handle, milisecond)
  • handle : 要操作的进程句柄
  • milisecond: 等待的时间,如果为-1,则一直等待.

示例如下:
  1. >>>importwin32process
  2. >>>handle=win32process.CreateProcess('C:\\Windows\\notepad.exe','',None,None,0,win32process
  3. .CREATE_NO_WINDOW,None,None,win32process.STARTUPINFO())#打开记事本,获得其句柄
  4. >>>win32process.TerminateProcess(handle[0],0)#终止进程
  5. 或者
  6. >>>importwin32event
  7. >>>handle=win32process.CreateProcess('C:\\Windows\\notepad.exe','',None,None,0,
  8. win32process.CREATE_NO_WINDOW,None,None,win32process.STARTUPINFO())#创建进程获得句柄
  9. >>>win32event.WaitForSingleObject(handle[0],-1)#等待进程结束
  10. 0#进程结束返回值
方式四使用ctypes调用kernel32.dll中的函数
使用ctypes模块可以让Python调用位于动态链接库的函数。

ctypes模块为Python提供了调用动态链接库中函数的功能。使用ctypes模块可以方便地调用由C语言编写的动态链接库,并向其传递参数。ctypes模块定义了C语言中的基本数据类型,并且可以实现C语言中的结构体和联合体。ctypes模块可以工作在Windows,Linux,Mac OS等多种操作系统,基本上实现了跨平台。

示例:

Windows下调用user32.dll中的MessageBoxA函数。

  1. >>>fromctypesimport*
  2. >>>user32=windll.LoadLibrary('user32.dll')
  3. >>>user32.MessageBoxA(0,str.encode('Ctypesissosmart!'),str.encode('Ctypes'),0)
  4. 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黑科技 Python中四种运行其他程序的方式1

    本文将介绍四种在Python中运行其他程序的方式。 **方式一:使用os.system()函数** os模块中的os.system()函数是最常见的运行外部程序的方法。它接受一个字符串作为参数,该字符串包含了要执行的命令。例如: ```...

    Ubuntu下后台持续运行Python程序

    在Ubuntu系统中,后台持续运行Python程序是许多开发者和系统管理员需要掌握的重要技能。这尤其适用于需要长时间运行的任务,如数据分析、服务器监控或自动化任务。本文将深入探讨如何在Ubuntu环境下实现这一目标,并...

    python小程序8 python小程序8 python小程序8 python小程序8

    这在创建Python桌面应用时非常有用,因为它允许用户在没有Python环境的情况下运行程序。 综合以上分析,"Python小程序8"的学习内容可能涉及如何使用Python编写高效、实用的代码,包括但不限于模块化编程、异常处理...

    python运行文件的4种方式.docx

    Python 中可以使用多种方式来运行其他程序或脚本,下面将详细介绍四种方式。 方式一:使用 os.system() 函数 os 模块中的 system() 函数可以方便地运行其他程序或者脚本。其格式为 `os.system(command)`,其中 `...

    Python脚本后台运行的几种方式

    一个用python写的监控脚本test1.py,用while True方式一直运行,在ssh远程(使用putty终端)时通过以下命令启动脚本: 代码如下: python test1.py & 现在脚本正常运行,通过ps能看到进程号,此时直接关闭ssh终端...

    在交互式环境中执行Python程序过程详解

    相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行、命令行窗口运行、开发工具上运行等,其中在不同的操作平台上还互不相同。今天,小编讲些Python基础的内容,以...

    Python4Delphi 运行环境Python38版本

    综上所述,Python4Delphi 结合 Python 3.8 运行环境,为 Delphi 开发者提供了一种强大的方式来利用 Python 语言的能力。通过理解如何配置和使用这个环境,开发者可以构建出功能丰富的、具有动态脚本支持的桌面应用...

    Python实现运行其他程序的四种方式实例分析

    本文实例讲述了Python实现运行其他程序的四种方式。分享给大家供大家参考,具体如下: 在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次...

    python写的开机自动执行程序

    通过py2exe,开发者可以将Python程序打包成独立的可执行文件,使得没有安装Python环境的用户也能运行程序。这种转换过程包括将Python解释器、依赖库和源代码一起打包,使得最终生成的执行文件可以在不依赖Python环境...

    Python运行不显示DOS窗口的解决方法

    本文将介绍两种方法来解决Python运行时不显示DOS窗口的问题。 首先,我们需要明白DOS窗口是什么以及它在程序运行中的作用。DOS(Disk Operating System)窗口是Windows操作系统中命令提示符界面的一个窗口,用于...

    python安装包 ,运行python程序

    - 保存文件,并在命令行中导航到该文件所在的目录,输入`python hello_world.py`运行程序。 4. **Python标准库**: Python的标准库包含大量预装模块,如os、sys、math等,它们提供了许多常用功能,无需额外安装...

    Python实验四小游戏程序运行视频

    Python实验四小游戏程序运行视频

    测量程序编制 - python 04Python运行方式.pptx

    在进行测量程序编制时,Python提供了两种主要的运行方式:交互式和文件式。 交互式运行是Python的一大特色,它允许用户直接与Python解释器进行交互。在这种模式下,用户可以逐行输入Python代码,并立即看到结果。...

    C++调用python,免安装python环境运行

    3. 按照使用说明运行程序,可能需要提供打包的Python可执行文件路径。 总的来说,这个项目为C++开发者提供了一种方便的方法来利用Python的强大功能,同时避免了在目标系统上安装Python的复杂性和潜在的兼容性问题。...

    Python实现背单词系统,优秀程序设计,部署运行简单

    Python实现背单词系统,优秀程序设计,部署运行简单 Python实现背单词系统,优秀程序设计,部署运行简单 Python实现背单词系统,优秀程序设计,部署运行简单 Python实现背单词系统,优秀程序设计,部署运行简单 ...

    unigui网页运行Python.7z

    2 程序中的“运行表达式”仅可以运行 2*3*4 这样的表达式,不能运行脚本,运行脚本时,因为print方法没有办法输出到unigui界面,故添加参数 retdata,修改retdata.value来输出信息到unigui界面. 示例脚本 ...

    win7解决python打包EXE不能运行升级包.rar

    例如,它可能包含了对Python运行时环境的更新,或者是对某些系统组件的补丁,使得打包的EXE可以在Win7上顺利执行。用户只需解压这个rar文件,然后运行其中的`.msu`文件(这是微软的一种更新包格式,通常用于Windows...

    win10下自动运行python程序脚本(csdn)————程序.pdf

    在Windows 10操作系统中,有时我们需要让Python程序在特定时间自动运行,比如进行定时数据抓取、自动化测试等。本文将详细介绍如何设置系统任务计划,使得Python脚本能够自动执行。 首先,你需要编写一个简单的...

    python程序设计基础教程慕课版课后题答案-Python语言程序设计基础.pdf

    Python是一种历史悠久且受欢迎的编程语言,它以简洁的语法和强大的功能库著称,尤其适合初学者入门。作为一门通用编程语言,Python的核心教学内容涵盖了分支、循环、函数等基本程序逻辑,以及丰富的函数库应用,这...

Global site tag (gtag.js) - Google Analytics