Python:在一个Python程序中,运行另一个Python程序
学习自:
1~3学习自如何在python中执行另一个py文件_python_脚本之家
4~6学习自Python中四种运行其他程序的方式 - hankleo - 博客园
1、os.system方法
用法:
os.system('python3 xxx.py')
说明:
就相当于在cmd窗口中写python3 xxx.py,即运行Python程序。
支持传递参数
2、execfile('xxx.py')
3、如果想要得到这个文件的输出,可以用os.popen
4、ShellExecute
用法:
ShellExecute(hwnd, op, file, args, dir, show)
hwnd | 父窗口的句柄,如果没有父窗口,则为0 |
op | 要运行的操作,open、print、空 |
file | 要运行的程序 |
args | 传递的参数 |
dir | 程序所在目录 |
show | 是否显示窗口 |
例子:
import win32api.ShellExecute
ShellExecute(0, 'open', 'notepad.exe', '', '', 0) #show=0,后台执行
ShellExecute(0, 'open', 'notepad.exe', '', '', 1) #前台打开
ShellExecute(0, 'open', 'notepad.exe', '1.txt', '', 1)#传入参数1.txt
ShellExecute(0, 'open', 'http://www.sohu.com', '', '', 1)#打开网页
ShellExecute(0, 'open', 'D:\\Opera.mp3', '', '', 1)#打开音频文件,当路径指向一个文件时
ShellExecute(0, 'open', 'D:\\hello.py', '', '', 1)#运行程序
原理:使用ShellExecute函数,相当于在资源管理器中双击文件图标,系统会打开相应程序进行运行。
5、CreateProcess
顾名思义,CreateProcess即创建进程,通过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:进程退出代码
补充:该方法应该只能打开exe文件,打开其他文件时会报错
6、使用ctypes调用kernel32.dll中的函数
使用ctypes模块可以让Python调用位于动态链接库的函数。可以方便地调用由C语言编写的动态链接库,并向其传递参数。
Python:在一个Python程序中,运行另一个Python程序的更多相关文章
- vc++ 在程序中运行另一个程序的方法
在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,Creat ...
- iOS 如何在一个应用程序中调用另一个应用程序
原则上iOS的沙箱原理,是阻止一个app去访问其他app的资源乃至是系统底层的资源的但是我们可以通过一种变相的方式:通过对应的URL模式和其他程序进行通讯. iOS应用之间的调用步骤: 一, 调用自己 ...
- 在android程序中打开另一个应用程序
Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用. 一般我们知道了另一个应用的包名和MainActivity的名 ...
- python学习(一)运行第一个python脚本
当然这里指的是在linux或者unix下,像写bash脚本那样 #!/usr/bin/python print('The Bright Side ' + 'of Life...') 反正我建议就算一开 ...
- IOS在一个程序中启动另一个程序
尽管iPhone不允许同时运行两个应用程序,我们可以从自己的应用程序中启动另一个应用程序,并且可以在应用程序之间共享数据.我们可以使用UIApplication类的openURL:方法从一个应用程序来 ...
- Spark认识&环境搭建&运行第一个Spark程序
摘要:Spark作为新一代大数据计算引擎,因为内存计算的特性,具有比hadoop更快的计算速度.这里总结下对Spark的认识.虚拟机Spark安装.Spark开发环境搭建及编写第一个scala程序.运 ...
- 运行第一个python程序,python 变量,常量,注释
一.运行第一个python程序: print('Hello,world') 保存为.py文件 在cmd窗口: python3x:python py文件路径 回车 python2x:python p ...
- 浅谈Python在信息学竞赛中的运用及Python的基本用法
浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...
- python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件
python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...
- python操作txt文件中数据教程[2]-python提取txt文件
python操作txt文件中数据教程[2]-python提取txt文件中的行列元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原始txt文件 程序实现后结果-将txt中元素提取并保存在c ...
随机推荐
- 洛谷P2240 【深基12.例1】部分背包问题(经典模板)
首先应该注意几个关键信息:装走尽多的金币.所有金币可以随意分割并且分割后金币的价值比不变; 我们可以抽象成一个买东西的场景,给你一定数目的钱,让你在这些钱内尽量在超市买更多的小零食,这就牵扯到了一个性 ...
- [NOI2020]命运
显然直接计数是不好计的,只能从 \(dp\) 这个角度来下手. 首先用最原始最直接的方法,直接在 \(dp\) 的过程中满足题目的要求. 既然问题给在一棵树上,那么必然和树脱不了关系,因此我们应该从树 ...
- redis清缓存
先查询当前redis的服务是否已经启动 ps -ef|grep redis [root@guanbin-k8s-master ~]# ps -ef|grep redis redis 1557 1 0 ...
- Eclipse集成Git/SVN插件及使用
感谢大佬:https://www.cnblogs.com/jpfss/p/8027347.html 1. Git插件安装 1.1 下载插件 首先打开Eclipse,然后点击Help>Instal ...
- php程序员经验
PHP 学习计划流程2008-10-22 17:23PHP 学习计划流程1.看教程 (2-3月)大概1天1个章节,比如<PHP圣经>有32章,1个多月就看完了,当然后面的章节每章1天肯定看 ...
- Java对数组的复制[转]
原文地址http://x10232.iteye.com/blog/2230762 定义一个数组 int[] a={3,1,4,2,5}: int[] b=a: int[] a={3,1,4,2,5}: ...
- Linux组管理
首先查看文件所有者.文件所在组等信息:ls -l 1.改变文件所有者:chown 用户名 文件名 执行 chown xm Hello.java 后,可以看到文件所有者现在是属于xm这个用户的了 2.改 ...
- iOS 如何监听用户在手机设置里改变了系统的时间?
如何监听用户未退出APP但通过Home键在手机设置里改变了系统的时间? 用户虽未退出APP,但是当它按Home键退到后台时 ,会调用该方法: - (void)applicationDidEnterBa ...
- log4j和lockback的比较,二者可否同时使用
一.log4j和logback的介绍 log4j: 可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:可以控制每一条日志的 ...
- 期中架构&防火墙¥四表五链
今日内容 架构图 包过滤防火墙 Iptables 新建虚拟机 内容详细 一.架构图 用户通过域名访问一个网站类比开车去饭店用餐 访问网站的流程 1.浏览器输入网站的域名(www.baidu.com), ...