迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中执行 Shell 命令并获取输出

作者:迹忆客 最近更新:2023/06/28 浏览次数:

在本文中,我们将学习如何借助 os.system() 从 Python 脚本执行 cmd 命令。 我们还将学习如何借助 Python 中的 subprocess 模块以更简单的方式从脚本执行 cmd 命令。


从 Python 脚本执行 CMD 命令并使用 os.system() 获取输出

我们出于不同目的在命令提示符或任何其他终端中执行终端命令。 但是,有时,需要在脚本内运行特定命令。

我们将了解如何直接在 Python 脚本中执行它们。 当我们进行服务器配置时,它非常方便。

首先,让我们向您展示一些在终端中工作的命令,例如 dir、cd 或 md。

命令提示符中的终端命令

现在,我们将了解如何在 Python 脚本中包含相同的内容。 为此,我们将导入一个名为 os.

os 模块将帮助我们与操作系统进行交互。 os 模块对文件和文件夹管理等操作系统任务提供广泛的支持。

让我们进入代码。 system() 是一个在类似 shell 中执行命令的方法,因此如果我们给它任何命令,它就会继续执行它们,就像我们在终端中执行它们一样。

系统函数还可以执行一堆命令。 它执行您可以在终端中运行的每个命令。

我们将使用 try 块,在该块内,我们将使用 system() 方法,这将帮助我们使用终端与操作系统进行交互。 如果 try 块没有执行指定的命令,我们将进入 except 块。

system() 方法内部,我们必须传递命令,但命令类型是 cmd。 为此,我们使用 /k,并在单引号或双引号内输入我们的命令。

import os

try:
    os.system('cmd /k "date"')
except:
    print('Could not execute command')

让我们运行一下,看看这是否给出了准确的输出。

The current date is: 24/08/2022
Enter the new date: (dd-mm-yy)

我们可以看到输出与命令提示符给出的相同。

您可以执行很多命令。 您可以打开记事本或计算器,也可以查看系统信息等等。

如果你想获取命令返回的内容,可以使用 os 模块的 popen() 函数获取。 在这个函数内部,我们可以传递命令并使用 readlines() 方法来获取其内容。

我们可以使用很多方法来获取干净的数据。 这取决于你。

import os
DATA=os.popen('help').readlines()[5].strip('\n')
print(DATA)

获取命令返回的内容

我们可以在任何地方使用这些命令,例如类、循环和函数。 这将正常工作,无需将其包装在函数中。

import os
def CMD_Com():
    DATA=os.popen('help').readlines()[5].strip('\n')
    print(DATA)
CMD_Com()

输出:

CACLS          Displays or modifies access control lists (ACLs) of files.

从 Python 脚本执行 CMD 命令并使用 Subprocess 模块获取输出

与子流程交互是一项基本技能。 不建议使用 os 模块在 Python 脚本内执行终端命令。

使用 os.system() 执行终端命令是在 Python 中运行命令的一种非常简单的方法。

os.system() 的功能有限; 正确的方法是使用一个名为 subprocess 的模块,这使得执行终端命令不太具有挑战性。 使用 subprocess 模块,我们可以运行当前正在处理的所有操作系统命令。

这就是我们在操作系统中运行所有现有命令的方式,例如打开记事本或检查当前工作目录,或我们可以使用 subprocess 模块执行的任何其他操作。

import subprocess
# subprocess.Popen('notepad')
# subprocess.Popen('systeminfo')
subprocess.Popen("dir", shell=True)

输出:

 Directory of C:\Users\Dell\Downloads\demo

24/08/2022  07:01 pm    <DIR>          .
24/08/2022  07:01 pm    <DIR>          ..
25/08/2022  01:47 am               460 demo.py
               1 File(s)            460 bytes
               2 Dir(s)  32,532,512,768 bytes free

上一篇:Python 中的 Monkey 补丁

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中的 Monkey 补丁

发布时间:2023/06/28 浏览次数:186 分类:Python

本文解释了什么是Monkey补丁以及如何在 Python 中实现它。 它有两个部分; 第一个演示了函数中的Monkey修补,第二个演示了如何在文件的单元测试中实现它。

Python 中的 Mock 和 Patch 之间的区别

发布时间:2023/06/28 浏览次数:182 分类:Python

在 Python 中,我们有一个称为单元测试的过程,其中包含模拟和补丁函数。 本文将讨论这两个角色的用途和区别。Python 中 Mock 和 Patch 对象库的用途和区别

在 Python 中使用 SciPy、NumPy 和 Pandas 存储数据

发布时间:2023/06/28 浏览次数:184 分类:Python

我们将了解为什么需要数据分箱以及哪种技术最适合哪种情况。Python 中的分箱 分箱是推断不同变量关系的最强大的分析技术之一。分箱是一种非参数且高度灵活的技术,其中变量被分类为不同

在 Python 中使用 Fsolve

发布时间:2023/06/28 浏览次数:65 分类:Python

本文将探讨如何使用 fsolve 在 Python 中求解。 我们还将探索它的使用场景和一些示例代码,以更好地理解如何以及何时使用它来达到某种结果。让我们首先了解 fsolve 是什么以及为什么使用它。

在 Python 中创建 Getter 和 Setter

发布时间:2023/06/28 浏览次数:172 分类:Python

这些行为在支持 OOP 的编程语言中很流行,Python 也支持它。 本文将讨论如何在 Python 中创建 getter 和 setter。Python 中的 Getter 和 Setter

从 Java 代码调用 Python 脚本

发布时间:2023/06/28 浏览次数:93 分类:Python

本篇文章介绍了从 Java 代码调用 Python 脚本的三种不同方法。从 Java 代码调用 Python 脚本 有时,我们必须从Java代码中调用Python脚本来满足项目需求。

Python 中的位掩码简介

发布时间:2023/06/27 浏览次数:125 分类:Python

本篇文章介绍了 Python 中的位掩码,并演示了如何使用按位运算符(例如 AND、OR、NOT 等)执行位掩码。Python 中的位掩码简介 位掩码是几乎所有编程语言的通用概念;

在 Ubuntu 中卸载 Python

发布时间:2023/06/27 浏览次数:158 分类:Python

本文演示如何从 Ubuntu 中删除或卸载 Python。检查你的系统中是否安装了Python 使用 Ctrl+Alt+T 打开终端。打开终端后,使用命令 python3 --version 检查您的系统是否安装了 python。

Python Teradata 连接

发布时间:2023/06/27 浏览次数:86 分类:Python

本文将讨论一些基本的正确准则,并在讨论连接方式之前了解 Teradata 模块的工作原理。Python 中的 Teradata 数据库 您可以使用 Python 和 Teradata 模块编写与 Teradata 数据库的强大交互脚本。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便