学习自:

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程序的更多相关文章

  1. vc++ 在程序中运行另一个程序的方法

    在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,Creat ...

  2. iOS 如何在一个应用程序中调用另一个应用程序

    原则上iOS的沙箱原理,是阻止一个app去访问其他app的资源乃至是系统底层的资源的但是我们可以通过一种变相的方式:通过对应的URL模式和其他程序进行通讯. iOS应用之间的调用步骤: 一, 调用自己 ...

  3. 在android程序中打开另一个应用程序

    Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用. 一般我们知道了另一个应用的包名和MainActivity的名 ...

  4. python学习(一)运行第一个python脚本

    当然这里指的是在linux或者unix下,像写bash脚本那样 #!/usr/bin/python print('The Bright Side ' + 'of Life...') 反正我建议就算一开 ...

  5. IOS在一个程序中启动另一个程序

    尽管iPhone不允许同时运行两个应用程序,我们可以从自己的应用程序中启动另一个应用程序,并且可以在应用程序之间共享数据.我们可以使用UIApplication类的openURL:方法从一个应用程序来 ...

  6. Spark认识&环境搭建&运行第一个Spark程序

    摘要:Spark作为新一代大数据计算引擎,因为内存计算的特性,具有比hadoop更快的计算速度.这里总结下对Spark的认识.虚拟机Spark安装.Spark开发环境搭建及编写第一个scala程序.运 ...

  7. 运行第一个python程序,python 变量,常量,注释

    一.运行第一个python程序: print('Hello,world') 保存为.py文件 在cmd窗口: python3x:python  py文件路径 回车 python2x:python  p ...

  8. 浅谈Python在信息学竞赛中的运用及Python的基本用法

    浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...

  9. python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

    python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...

  10. python操作txt文件中数据教程[2]-python提取txt文件

    python操作txt文件中数据教程[2]-python提取txt文件中的行列元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原始txt文件 程序实现后结果-将txt中元素提取并保存在c ...

随机推荐

  1. 近期Android学习II

    一晃眼又过了5天,这几天的学习有些杂乱,半年在家没运动,返校了准备慢慢恢复运动,身体才是革命的本钱~ 四天跑了三回步,每次都死亡喘息= = 这几天的学习重点总归还是放在Android上了,前面31天连 ...

  2. hashmap 实现 相同的key值时,value值叠加效果。

    一,了解一些基础 package com.ohs.demo; /** * * 一.需求是:停止相同的key值,覆盖效果,将重复的value值,叠加起来. * * 二.hash? 什么是hash? * ...

  3. 布客&#183;ApacheCN 编程/大数据/数据科学/人工智能学习资源 2020.1

    公告 我们正在招募项目负责人,完成三次贡献可以申请,请联系片刻(529815144).几十个项目等你来申请和参与,不装逼的朋友,我们都不想认识. 薅资本主义羊毛的 CDNDrive 计划正式启动! 我 ...

  4. js 斐波那契数列的获取和曲线的实现(每日一更)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  5. AT3527 [ARC082D] Sandglass

    解法一 直接考虑在初始为 \(a\) 的情况下时刻 \(t\) 时 \(A\) 中剩余的沙子是行不通的,不妨反过来考虑在时刻 \(t\) 每个初始值 \(a\) 的答案,令其为 \(f_t(a)\). ...

  6. DP 专练

    A - 跳蚤电话 观察性质,可以发现每次连边的点一定是有祖先关系的,可以直接挂上去一个,也可以是在中间边上插入一个点. 所以我很自然的想到去计算树上的点的加入顺序,因为一但加入顺序确定,每一次的操作也 ...

  7. RabbitMQ简介及安装

    AMQP简介 AMQP AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是进程之间传递异步消息的网络协议. AMQP工作过程 发布者(Publisher ...

  8. iOS时间处理之时间对比 by Nicky.Tsui

    通过项目需求, 服务器返回了一个 order_canceled_time 订单自动取消时间   如果我要跟当前时间做一个对比,然后生成出一个倒计时的时间  那么首先我们要知道 order_cancel ...

  9. Ext原码学习之lang-Object.js

    // JavaScript Document (function(){ var TemplateClass = function(){}, ExtObject = Ext.Object = { cha ...

  10. 申请Google AdSense联盟(还没有通过)

    最近我把我的博客移动到了我自己搭建的一个网站上这里,想申请goole联盟,但是连续申请了今天都没有被通过 不知道什么原因,goole没有有回复就告诉你不通过,这让我摸不到头脑, 我网站用的是hexo搭 ...