📜  使用 python 运行 python 脚本并捕获命令行输出 - Python (1)

📅  最后修改于: 2023-12-03 14:49:45.775000             🧑  作者: Mango

使用 Python 运行 Python 脚本并捕获命令行输出 - Python

在 Python 中运行 Python 脚本是一种常见的任务。 本文将介绍如何使用 Python 运行脚本,并获取该脚本在命令行中的输出。

使用 subprocess 模块运行脚本

Python 的 subprocess 模块可以用于在 Python 程序中运行 shell 命令或其他可执行程序,它提供了多种方法来执行命令和获取命令输出。

下面是一个基本的示例,演示如何使用 subprocess 模块运行 Python 脚本并获取命令行输出:

import subprocess

# 运行脚本
result = subprocess.run(['python', 'hello_world.py'], capture_output=True, text=True)

# 获取命令行输出
output = result.stdout.strip()

# 输出结果
print(output)

subprocess.run() 函数接受一个包含命令及其参数的列表,并在 shell 中运行该命令。在这种情况下,我们运行名为 hello_world.py 的 Python 脚本。

capture_output 参数用于捕获命令的标准输出和标准错误输出。 text 参数用于将标准输出和标准错误输出解码为文本字符串。

在运行脚本之后,我们通过 result.stdout 属性获取命令行输出,并使用 strip() 方法删除任何前导或尾随空格。

使用 os 模块运行脚本

除了使用 subprocess 模块,您还可以使用 os 模块运行 Python 脚本。 在此示例中,我们将使用 os.system() 函数运行 shell 命令:

import os

# 运行脚本
os.system('python hello_world.py > output.txt')

# 读取输出文件
with open('output.txt', 'r') as f:
  output = f.read()

# 输出结果
print(output.strip())

在这种情况下,我们将标准输出重定向到名为 output.txt 的文件。 然后,我们打开这个文件并读取其中的内容。最后,我们使用 strip() 方法删除任何前导或尾随空格并将输出打印到控制台上。

结论

无论你使用哪种方法,都可以在 Python 中运行 Python 脚本,并捕获其命令行输出。使用 subprocess 模块可以获得更大的灵活性和更精确的控制,但 os 模块也是一个很好的选择。