亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python調(diào)用可執(zhí)行文件.exe的2種實現(xiàn)方法

 更新時間:2023年08月28日 16:02:19   作者:wzg2016  
Python是一種流行的編程語言,可以輕松地通過腳本調(diào)用各種應(yīng)用程序,本文就詳細的介紹了python調(diào)用可執(zhí)行文件.exe的2種實現(xiàn)方法,感興趣的可以了解一下

方式一: os.system(cmd_command)

os.system() 相當于打開了windows系統(tǒng)中的一個cmd窗口,cmd_command 相當于在命令行中輸入的命令。 cmd_command 可以是一個單獨的exe文件的路徑,這時表示打開一個exe程序,比如下面例子,表示用python打開一個notepad++軟件。

import os 
def cmd_run_exe(exe_path):
    """
    功能:打開一個exe程序
    參數(shù): exe_path:exe程序的全局路徑,
    注意:需要輸入的是exe的全局路徑,路徑中不能有空格,也不能僅僅是exe軟件名
    """
    os.system(exe_path) 
def cmd_kill_exe(exe_name):
    """
    功能:關(guān)閉一個已經(jīng)打開的exe軟件程序
    參數(shù):
        exe_name:已經(jīng)打開的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 也可以是一個命令行,示例如下:

創(chuàng)建一個hello.py文件

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

創(chuàng)建一個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秒,關(guān)閉該程序。
    參數(shù):
        cmd_exe_command: 待打開的exe軟件路徑及命令.
            可以是完整的命令字符串,也可以是字符串列表。
            路徑中不能存在空格,最好不要有漢字。不能僅僅是軟件名。
        waitTime: 最大等待時長,單位:秒。
            超過該時長后,關(guān)閉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" ## 上一章中創(chuàng)建的hello.py文件。
    python_run_exeCommand([python_exe_path,py_file_path])

subprocess的一個典型應(yīng)用是:可以向exe_command提供輸入?yún)?shù),也可以存儲exe_command運行過程中產(chǎn)生的print()信息。

import subprocess
def python_run_exeCommand(cmd_exe_command,waitTime=10000):
    """
    功能:打開一個exe軟件,等待waitTime秒,關(guān)閉該程序。
    參數(shù):
        cmd_exe_command: 待打開的exe軟件路徑及命令.
            可以是完整的命令字符串,也可以是字符串列表。
            路徑中不能存在空格,最好不要有漢字。不能僅僅是軟件名。
        waitTime: 最大等待時長,單位:秒。
            超過該時長后,關(guān)閉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格式轉(zhuǎn)換為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_伐塵-華為云開發(fā)者聯(lián)盟

6個例子快速學會python中subprocess庫的使用_Light2077的博客-CSDN博客

python subprocess-更優(yōu)雅的創(chuàng)建子進程 - 知乎

python中3種調(diào)用可執(zhí)行文件.exe的方法_python 打開本地exe文件_Ethan的博客的博客-CSDN博客

到此這篇關(guān)于python調(diào)用可執(zhí)行文件.exe的2種實現(xiàn)方法的文章就介紹到這了,更多相關(guān)python調(diào)用可執(zhí)行文件.exe內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實現(xiàn)淘寶購物系統(tǒng)

    python實現(xiàn)淘寶購物系統(tǒng)

    這篇文章主要為大家詳細介紹了python實現(xiàn)簡易的淘寶購物系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python應(yīng)用利器之緩存機制的妙用詳解

    Python應(yīng)用利器之緩存機制的妙用詳解

    在 Python 應(yīng)用程序中,使用緩存能夠顯著提高性能并降低資源消耗,本文將詳細介紹如何在 Python 中實現(xiàn)緩存機制,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-12-12
  • 使用PyQt實現(xiàn)簡易文本編輯器

    使用PyQt實現(xiàn)簡易文本編輯器

    這篇文章主要為大家詳細介紹了如何使用PyQt5框架構(gòu)建一個簡單的文本編輯器,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-02-02
  • python用glob模塊匹配路徑的方法詳解

    python用glob模塊匹配路徑的方法詳解

    這篇文章主要介紹了python如何用glob模塊匹配路徑,glob模塊是Python的一個標準庫,用于在文件系統(tǒng)中查找文件名匹配特定模式的文件路徑,需要的朋友可以參考下
    2024-02-02
  • 通過python3實現(xiàn)投票功能代碼實例

    通過python3實現(xiàn)投票功能代碼實例

    這篇文章主要介紹了通過python3實現(xiàn)投票功能代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • 分析python并發(fā)網(wǎng)絡(luò)通信模型

    分析python并發(fā)網(wǎng)絡(luò)通信模型

    隨著互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的高速發(fā)展,使用網(wǎng)絡(luò)的人數(shù)和電子設(shè)備的數(shù)量急劇增長,其也對互聯(lián)網(wǎng)后臺服務(wù)程序提出了更高的性能和并發(fā)要求。本文主要分析比較了一些模型的優(yōu)缺點,并且用python來實現(xiàn)
    2021-06-06
  • 使用Python連接MySQL數(shù)據(jù)庫進行編程的步驟詳解

    使用Python連接MySQL數(shù)據(jù)庫進行編程的步驟詳解

    Python數(shù)據(jù)庫編程可以使用多種模塊與API,例如SQLite、MySQL、PostgreSQL等,本教程將重點介紹使用Python連接MySQL數(shù)據(jù)庫進行編程,需要的朋友可以參考下
    2023-06-06
  • pandas與pyspark計算效率對比分析

    pandas與pyspark計算效率對比分析

    這篇文章主要介紹了pandas與pyspark計算效率對比,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • django應(yīng)用JWT(JSON?Web?Token)實戰(zhàn)教程

    django應(yīng)用JWT(JSON?Web?Token)實戰(zhàn)教程

    在前后端分離的項目中,JWT(JSON?Web?Token)作為一種廣泛使用的身份驗證和授權(quán)機制,提供了一種安全、高效的方式來保護RESTful?API,本文詳細介紹了JWT的概念、優(yōu)勢、在Django中的應(yīng)用步驟和使用方法,是構(gòu)建安全、高效Web應(yīng)用的有效指南
    2024-10-10
  • Python實現(xiàn)計算AUC的示例代碼

    Python實現(xiàn)計算AUC的示例代碼

    AUC(Area?under?curve)是機器學習常用的二分類評測手段,直接含義是ROC曲線下的面積。本文將利用Python語言實現(xiàn)計算AUC,感興趣的可以學習一下
    2022-07-07

最新評論