最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

方式一: os.system(cmd_command)

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

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

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

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

創(chuàng)建一個(gè)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)

運(yùn)行上面的main.py腳本,就相當(dāng)于在cmd的命令行中運(yùn)行“python.exe hello.py”

方式二:subprocess 方法

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

import subprocess
def python_run_exeCommand(cmd_exe_command,waitTime=10000):
    """
    功能:打開一個(gè)exe軟件,等待waitTime秒,關(guān)閉該程序。
    參數(shù):
        cmd_exe_command: 待打開的exe軟件路徑及命令.
            可以是完整的命令字符串,也可以是字符串列表。
            路徑中不能存在空格,最好不要有漢字。不能僅僅是軟件名。
        waitTime: 最大等待時(shí)長,單位:秒。
            超過該時(shí)長后,關(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的一個(gè)典型應(yīng)用是:可以向exe_command提供輸入?yún)?shù),也可以存儲(chǔ)exe_command運(yùn)行過程中產(chǎn)生的print()信息。

import subprocess
def python_run_exeCommand(cmd_exe_command,waitTime=10000):
    """
    功能:打開一個(gè)exe軟件,等待waitTime秒,關(guān)閉該程序。
    參數(shù):
        cmd_exe_command: 待打開的exe軟件路徑及命令.
            可以是完整的命令字符串,也可以是字符串列表。
            路徑中不能存在空格,最好不要有漢字。不能僅僅是軟件名。
        waitTime: 最大等待時(shí)長,單位:秒。
            超過該時(shí)長后,關(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.",如果有多行,返回一個(gè)列表。
    # 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的高級(jí)用法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很強(qiáng)大,更多功能參考:

subprocess — Subprocess management — Python 3.11.5 documentation

【Python】python之subprocess模塊詳解_python_伐塵-華為云開發(fā)者聯(lián)盟

6個(gè)例子快速學(xué)會(huì)python中subprocess庫的使用_Light2077的博客-CSDN博客

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

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

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

相關(guān)文章

  • Python基于pandas爬取網(wǎng)頁表格數(shù)據(jù)

    Python基于pandas爬取網(wǎng)頁表格數(shù)據(jù)

    這篇文章主要介紹了Python基于pandas獲取網(wǎng)頁表格數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 基于Python實(shí)現(xiàn)溫度轉(zhuǎn)換程序

    基于Python實(shí)現(xiàn)溫度轉(zhuǎn)換程序

    這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)簡單的溫度轉(zhuǎn)換程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • Python實(shí)現(xiàn)的統(tǒng)計(jì)文章單詞次數(shù)功能示例

    Python實(shí)現(xiàn)的統(tǒng)計(jì)文章單詞次數(shù)功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的統(tǒng)計(jì)文章單詞次數(shù)功能,結(jié)合實(shí)例形式分析了Python針對(duì)字符串序列的遍歷、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • python SQLAlchemy 數(shù)據(jù)庫連接池的實(shí)現(xiàn)

    python SQLAlchemy 數(shù)據(jù)庫連接池的實(shí)現(xiàn)

    SSQLAlchemy提供了強(qiáng)大的連接池和連接管理功能,可以有效地管理數(shù)據(jù)庫連接,本文主要介紹了python SQLAlchemy 數(shù)據(jù)庫連接池的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • python實(shí)現(xiàn)ip地址查詢經(jīng)緯度定位詳解

    python實(shí)現(xiàn)ip地址查詢經(jīng)緯度定位詳解

    這篇文章主要介紹了python實(shí)現(xiàn)ip地址查詢經(jīng)緯度定位詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 利用python查看數(shù)組中的所有元素是否相同

    利用python查看數(shù)組中的所有元素是否相同

    這篇文章主要給大家介紹了關(guān)于如何利用python查看數(shù)組中的所有元素是否相同的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python中eval與int的區(qū)別淺析

    python中eval與int的區(qū)別淺析

    這篇文章主要給大家介紹了關(guān)于python中eval與int的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python中人臉圖像特征提取方法(HOG、Dlib、CNN)簡述

    Python中人臉圖像特征提取方法(HOG、Dlib、CNN)簡述

    這篇文章主要介紹了Python中人臉圖像特征提取方法(HOG、Dlib、CNN)簡述,需要的朋友可以參考下
    2021-08-08
  • 詳細(xì)一文帶你分清Python中的模塊、包和庫

    詳細(xì)一文帶你分清Python中的模塊、包和庫

    這篇文章主要介紹了詳細(xì)一文帶你分清Python中的模塊、包和庫,Python?模塊(Module),是一個(gè)?Python?文件,以?.py?結(jié)尾,包含了?Python?對(duì)象定義和Python語句,模塊能定義函數(shù),類和變量,模塊也能包含可執(zhí)行的代碼,需要的朋友可以參考下
    2023-08-08
  • python playwright實(shí)現(xiàn)獲取當(dāng)前頁面的截圖

    python playwright實(shí)現(xiàn)獲取當(dāng)前頁面的截圖

    這篇文章主要為大家詳細(xì)介紹了python playwright實(shí)現(xiàn)獲取當(dāng)前頁面的截圖的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2025-12-12

最新評(píng)論

龙海市| 彰化县| 萨嘎县| 朝阳区| 谷城县| 老河口市| 乌拉特中旗| 徐闻县| 班玛县| 南通市| 微山县| 怀远县| 洪湖市| 政和县| 南昌县| 什邡市| 黄梅县| 肃宁县| 威宁| 长治市| 芷江| 江安县| 上栗县| 金寨县| 黎川县| 晋城| 安龙县| 宾阳县| 容城县| 惠东县| 泽州县| 明溪县| 桃园市| 巴林左旗| 灌阳县| 昌平区| 霞浦县| 齐齐哈尔市| 岗巴县| 积石山| 古蔺县|