python 调用可执行文件.exe

这篇具有很好参考价值的文章主要介绍了python 调用可执行文件.exe。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方式一: os.system(cmd_command)

os.system() 相当于打开了windows系统中的一个cmd窗口,cmd_command 相当于在命令行中输入的命令。 cmd_command 可以是一个单独的exe文件的路径,这时表示打开一个exe程序,比如下面例子,表示用python打开一个notepad++软件。

import os 

def cmd_run_exe(exe_path):
    """
    功能:打开一个exe程序
    参数: exe_path:exe程序的全局路径,
    注意:需要输入的是exe的全局路径,路径中不能有空格,也不能仅仅是exe软件名
    """
    os.system(exe_path) 

def cmd_kill_exe(exe_name):
    """
    功能:关闭一个已经打开的exe软件程序
    参数:
        exe_name:已经打开的exe程序的名称,是名称,不能是路径
    """
    os.system("taskkill /f /t /im {}".format(exe_name))
    print("killed process {}".format(exe_name))

if __name__ == "__main__":
    exe_path = "E:/software-setups/notepad++/notepad++.exe"
    
    # 打开nodepad++软件
    cmd_run_exe(exe_path)
    

cmd_command 也可以是一个命令行,示例如下:

        创建一个hello.py文件

## hello.py
print("hello world!")

        创建一个main.py文件

## main.py 
import os 

def run_cmd_command(cmd_command):
    os.system(cmd_command)

if __name__ == "__main__":
    python_exe_path = "python.exe"
    py_file_path = "hello.py"
    
    cmd_command = "{} {}".format(python_exe_pyth, py_file_path)
    run_cmd_command(cmd_command)

        运行上面的main.py脚本,就相当于在cmd的命令行中运行“python.exe hello.py”

方式二:subprocess 方法

subprocess存在的目的就是为了替代上面的os.system(),它集成了很多功能,用起来很方便。

import subprocess

def python_run_exeCommand(cmd_exe_command,waitTime=10000):
    """
    功能:打开一个exe软件,等待waitTime秒,关闭该程序。
    参数:
        cmd_exe_command: 待打开的exe软件路径及命令.
            可以是完整的命令字符串,也可以是字符串列表。
            路径中不能存在空格,最好不要有汉字。不能仅仅是软件名。
        waitTime: 最大等待时长,单位:秒。
            超过该时长后,关闭exe程序。
    """
    Popen_Obj = subprocess.Popen(cmd_exe_command)
    try:
        Popen_Obj.wait(timeout=waitTime)
    except Exception as e:
        print("===== process timeout {} =====".format(cmd_exe_command))
        Popen_Obj.kill()
        return None
    

if __name__ == "__main__":
    python_exe_path = "python.exe"
    py_file_path = "hello.py" ## 上一章中创建的hello.py文件。

    python_run_exeCommand([python_exe_path,py_file_path])

subprocess的一个典型应用是:可以向exe_command提供输入参数,也可以存储exe_command运行过程中产生的print()信息。

import subprocess

def python_run_exeCommand(cmd_exe_command,waitTime=10000):
    """
    功能:打开一个exe软件,等待waitTime秒,关闭该程序。
    参数:
        cmd_exe_command: 待打开的exe软件路径及命令.
            可以是完整的命令字符串,也可以是字符串列表。
            路径中不能存在空格,最好不要有汉字。不能仅仅是软件名。
        waitTime: 最大等待时长,单位:秒。
            超过该时长后,关闭exe程序。
    """
    Popen_Obj = subprocess.Popen(cmd_exe_command,stdout = subprocess.PIPE)

    # cmd_stdout = Popen_Obj.stdout.read() # 返回bytes格式,如 b"hello world."
    # cmd_stdout = Popen_Obj.stdout.read().decode("utf-8") ## 把返回的bytes格式转换为string格式
    cmd_stdout = Popen_Obj.stdout.readlines()# 返回bytes格式,如 b"hello world.",如果有多行,返回一个列表。
    # cmd_stdout = Popen_Obj.stdout.readline()# 返回bytes格式,如 b"hello world.",如果有多行,返回第一行。

    ## 打印subprocess返回的信息
    for output in cmd_stdout:
        print("subprocess-output:",output.decode("utf-8"))

    try:
        Popen_Obj.wait(timeout=waitTime)
    except Exception as e:
        print("===== process timeout {} =====".format(cmd_exe_command))
        Popen_Obj.kill()
        return None
    

if __name__ == "__main__":
    python_exe_path = "python.exe"
    py_file_path = "hello.py"

    python_run_exeCommand([python_exe_path,py_file_path])

备注:上面用到的是subprocess的高级用法Popen,一般来说使用subprocess的普通用法就够用了:subprocess.run([cmd_command_list])

import subprocess

python_exe_path = "python.exe"
py_file_path = "D:/6-Projects/python_run_exe/hello.py"
cmd_command = "{} {}".format(exe_path,py_path)

res = subprocess.run([python_exe_path,py_file_path],stdout=subprocess.PIPE)

stdout =  res.stdout.decode("utf-8")
out_list = stdout.split("\r\n")
print(out_list)

subprocess很强大,更多功能参考:

subprocess — Subprocess management — Python 3.11.5 documentation

【Python】python之subprocess模块详解_python_伐尘-华为云开发者联盟

6个例子快速学会python中subprocess库的使用_Light2077的博客-CSDN博客

python subprocess-更优雅的创建子进程 - 知乎

python中3种调用可执行文件.exe的方法_python 打开本地exe文件_Ethan的博客的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-680274.html

到了这里,关于python 调用可执行文件.exe的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python代码打包成可执行文件(exe)

    【前言】:我们在开发完一个小项目后,想要把项目发布出来给别人用。通常都会把代码打包成exe后再给别人,而不是让别人去安装运行环境再跑裸代码。本文就是介绍如何使用pyinstaller这个工具将python带包成可直接运行的exe。 在介绍pyinstaller之前,先简单介绍下其它几个可

    2024年02月12日
    浏览(44)
  • 【Python打包成exe】快速将多个py文件及其他文件打包为exe可执行文件

    尝试了很多种Python打包为exe可执行文件的方式,通过总结,得出一种最简洁、最有效的打包方式分享给大家! 准备好将要打包的工程文件(夹) 如上图所示, 首先将主文件UI.py和文件夹./file放在一级文件夹./YW下方,如果有同级其他.py文件与UI.py放在同一级文件夹即可! 然后

    2024年01月21日
    浏览(35)
  • 【利用pycharm将python程序生成.exe执行文件】

    一只小白自学Python的成长史 点击文件,点击设置 点击Python解释器,点击“+” 搜索pyinstaller,安装最新版本 安装成功 1.打开想要转化的文件,点击Therminal (终端) 按钮 2.选择想要转化的程序,在Terminal框中编辑 代码如下(示例): -F(注意大写)是所有库文件打包成一个可执行

    2024年02月07日
    浏览(71)
  • python 打包项目(包含.ui文件,.dll文件)为exe可执行文件

    目录 1. 背景 2. 生成.spec文件: 3. 编辑.spec文件: 4. 最后生成单个可执行文件.exe:  5 补充: 1. 背景         最近在项目中想做一个用于烧录MCU的上位机给工厂用。于是在某工程模板上简单开发了一个基于python 和pyQt5的上位机软件。项目包含多个.py文件,多个.dll文件,一

    2024年02月16日
    浏览(34)
  • python项目打包成exe可执行文件(pyinstaller库)

    前言:才入职新公司;进来工作内容,就是将之前的python脚本项目打包成.exe可执行文件;一来方便不同岗位的同事之间使用,二来源码信息不会改动和泄漏。 正因为python具有丰富的第三方库,目前已有数万之多;这里用到的是 \\\'pyinstaller\\\'库; 正文: 两种情况: Ⅰ、单独一个

    2024年02月06日
    浏览(37)
  • 通过pyinstaller将python项目打包成exe执行文件

    目录 第一步:安装pyinstaller 第二步:获取一个ico图标(也即是自己这个exe文件最后的图标) 第三步:打包 pip install pyinstaller 先从这里获取一个png图片:iconfont-阿里巴巴矢量图标库 再转化成ico图片(推荐256 x 256):PNG转ICO - 在线转换图标文件  可以把得到的ico图片放在pytho

    2024年02月09日
    浏览(41)
  • Python代码打包成EXE可执行文件(避开打包文件太大的坑)

    ​​​​​​​ 目录 一、博主的成长经历  二、虚拟环境下打包的好处  三、pyinstaller的基础用法 四、虚拟环境打包操作实例 五、成果展示 欢迎大家来观栏~  ——随乔木凉夏 博主最初使用pyinstaller打包py文件的时候,用的很是顺心,命令行复制粘贴,回车键一敲,不用多久

    2024年02月09日
    浏览(39)
  • py2exe打包Python程序为Windows下的exe执行文件

    py2exe 是一个将 Python 脚本转换成 Windows 上可独立执行的**.exe 程序的工具,这样就可以在不用装Python解析器的情况下在 Windows**系统上运行这个可执行程序。 py2exe 已经被用于创建 wxPython 、 Tkinter 、 Pmw 、 PyGTK 、 pygame 、 win32com client和server ,和其它的独立程序。 py2exe 是发布在开

    2024年02月04日
    浏览(35)
  • nuitka打包python的PyQt5成exe可执行文件

    可以打包多文件,也可以打包单文件。 使用的python版本是3.8.10 1、下载gcc 方式1:可以到网站下载,点我跳转 方式2:可以直接去网盘下载,点我跳转 提取码:8888 网盘里面也有python3.8.10的安装包,下载后直接安装即可。 下载 64位 winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14. 后,解压到

    2024年02月05日
    浏览(46)
  • Python封装——如何把python代码打包成一个可执行的.exe文件,Pyinstaller

    https://pyinstaller.org/en/stable/ Pyinstaller可以打包Win、Linux、MacOS下的python程序,在什么环境下打包的就是什么平台的程序。相对来看,Pyinstaller打包的程序体积大、安全性稍差(容易反编译),但是上手相对简单一些。 安装:cmd下输入pip install Pyinstaller(P大写) 清华大学镜像 pip in

    2024年02月10日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包