


Detailed explanation of method examples of Python running other programs
这篇文章主要介绍了Python实现运行其他程序的四种方式,结合实例形式分析了Python执行其他程序相关模块与函数使用技巧,需要的朋友可以参考下
本文实例讲述了Python实现运行其他程序的四种方式。分享给大家供大家参考,具体如下:
在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码。为了更好地控制运行的进程,可以使用win32process模块中的函数,如果想进一步控制进程,则可以使用ctype模块,直接调用kernel32.dll中的函数.
【方式一】使用os.system()函数运行其他程序
os模块中的system()函数可以方便地运行其他程序或者脚本,模式如下:
os.system(command)
command: 要执行的命令,如果要向脚本传递参数,可以使用空格分割程序及多个参数。
示例如下:
>>> import os >>> os.system('notepad') # 打开记事本程序. 0 >>> os.system('notepad 1.txt') # 打开1.txt文件,如果不存在,则创建. 0
【方式二】使用ShellExecute函数运行其他程序
除了使用os.system()函数外,还可以使用win32api模块中的ShellExecute()函数来运行其他程序,格式如下:
ShellExecute(hwnd, op, file, args, dir, show)
hwnd: 父窗口的句柄,如果没有父窗口,则为0
op : 要运行的操作,为open,print或者为空
file: 要运行的程序,或者打开的脚本
args: 要向程序传递的参数,如果打开的是文件则为空
dir : 程序初始化的目录
show: 是否显示窗口
示例如下:
>>> import win32api >>> 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) # 函数返回进程句柄、线程句柄、进程ID以及线程ID
结束进程:
可以使用win32process.TerminateProcess函数来结束已创建的进程, 函数格式如下:
TerminateProcess(handle, exitCode)
handle 要操作的进程句柄
exitCode 进程退出代码
或者使用win32event.WaitForSingleObject等待创建的线程结束,函数格式如下:
WaitForSingleObject(handle, milisecond)
handle : 要操作的进程句柄
milisecond: 等待的时间,如果为-1,则一直等待.
示例如下:
>>> import win32process >>> handle = win32process.CreateProcess('C:\\Windows\\notepad.exe', '', None, None, 0, win32process .CREATE_NO_WINDOW, None, None, win32process.STARTUPINFO()) # 打开记事本,获得其句柄 >>> win32process.TerminateProcess(handle[0], 0) # 终止进程
或者
>>> import win32event >>> 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函数。
>>> from ctypes import * >>> user32 = windll.LoadLibrary('user32.dll') >>> user32.MessageBoxA(0, str.encode('Ctypes is so smart!'), str.encode('Ctypes'), 0) 1
ctype模块中含有的基本类型与C语言类似,下面是几个基本的数据类型的对照:
---------------------------------------------
Ctypes data type C data Type
---------------------------------------------
c_char char
c_short short
c_int int
c_float long
c_doule double
c_void_p void *
---------------- --------------------------
The above is the detailed content of Detailed explanation of method examples of Python running other programs. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

PHP originated in 1994 and was developed by RasmusLerdorf. It was originally used to track website visitors and gradually evolved into a server-side scripting language and was widely used in web development. Python was developed by Guidovan Rossum in the late 1980s and was first released in 1991. It emphasizes code readability and simplicity, and is suitable for scientific computing, data analysis and other fields.

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

To run Python code in Sublime Text, you need to install the Python plug-in first, then create a .py file and write the code, and finally press Ctrl B to run the code, and the output will be displayed in the console.

VS Code can run on Windows 8, but the experience may not be great. First make sure the system has been updated to the latest patch, then download the VS Code installation package that matches the system architecture and install it as prompted. After installation, be aware that some extensions may be incompatible with Windows 8 and need to look for alternative extensions or use newer Windows systems in a virtual machine. Install the necessary extensions to check whether they work properly. Although VS Code is feasible on Windows 8, it is recommended to upgrade to a newer Windows system for a better development experience and security.

VS Code can be used to write Python and provides many features that make it an ideal tool for developing Python applications. It allows users to: install Python extensions to get functions such as code completion, syntax highlighting, and debugging. Use the debugger to track code step by step, find and fix errors. Integrate Git for version control. Use code formatting tools to maintain code consistency. Use the Linting tool to spot potential problems ahead of time.

Writing code in Visual Studio Code (VSCode) is simple and easy to use. Just install VSCode, create a project, select a language, create a file, write code, save and run it. The advantages of VSCode include cross-platform, free and open source, powerful features, rich extensions, and lightweight and fast.
