📜  python 执行 bat 文件 - Python (1)

📅  最后修改于: 2023-12-03 15:19:09.773000             🧑  作者: Mango

使用 Python 执行 BAT 文件

在编程中,我们经常需要执行一些外部命令或脚本。在 Windows 环境下,批处理文件 (BAT 文件) 是一种常见的脚本文件格式。

Python 提供了多种方法来执行 BAT 文件,并获取执行结果。本文将介绍如何使用 Python 执行 BAT 文件,并获取执行结果的几种常用方法。

方法一:使用 os.system 函数

os.system 函数可以调用系统命令执行 BAT 文件。该函数将执行结果输出到标准输出流,并返回执行结果的退出码。

import os

# 要执行的 BAT 文件路径
bat_file = "path/to/your/bat_file.bat"

# 执行 BAT 文件
exit_code = os.system(bat_file)

if exit_code == 0:
    print("BAT 文件执行成功")
else:
    print("BAT 文件执行失败")

注意,os.system 函数仅返回执行结果的退出码,无法获取 BAT 文件的输出内容。

方法二:使用 subprocess 模块

subprocess 模块提供了更高级的函数和类,用于执行外部命令。可以使用 subprocess.run 函数执行 BAT 文件,并获取执行结果的输出内容和退出码。

import subprocess

# 要执行的 BAT 文件路径
bat_file = "path/to/your/bat_file.bat"

# 执行 BAT 文件
result = subprocess.run(bat_file, capture_output=True, text=True)

output = result.stdout  # 执行结果的标准输出内容
exit_code = result.returncode  # 执行结果的退出码

if exit_code == 0:
    print("BAT 文件执行成功")
else:
    print("BAT 文件执行失败")

print("执行结果输出:")
print(output)

使用 capture_output=True 参数可以捕获执行结果的输出内容,并使用 text=True 参数将输出内容以字符串形式返回。

方法三:使用第三方库 pywin32

如果你的 BAT 文件依赖于 Windows 平台的特殊功能或 API,可以使用第三方库 pywin32 来执行 BAT 文件。

安装 pywin32 库:

pip install pywin32

使用 pywin32 库执行 BAT 文件:

import win32api

# 要执行的 BAT 文件路径
bat_file = "path/to/your/bat_file.bat"

# 执行 BAT 文件
result = win32api.ShellExecute(0, "open", bat_file, None, None, 1)

if result > 32:
    print("BAT 文件执行成功")
else:
    print("BAT 文件执行失败")

使用 win32api.ShellExecute 函数可以执行 BAT 文件,并返回执行结果。

总结

本文介绍了使用 Python 执行 BAT 文件的三种常用方法:使用 os.system 函数、使用 subprocess 模块、使用第三方库 pywin32。根据你的需求,选择适合的方法来执行 BAT 文件,并获取执行结果。