Python实现执行Shell命令并获取输出

 更新时间:2023年10月23日 14:11:51   作者:迹忆客  
这篇文章主要介绍了如何借助 os.system() 从 Python 脚本执行 cmd 命令,以及如何借助 Python 中的 subprocess 模块以更简单的方式从脚本执行 cmd 命令,感兴趣的小伙伴可以了解下

在本文中,我们将学习如何借助 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实现执行Shell命令并获取输出的文章就介绍到这了,更多相关python执行Shell命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pygame游戏之旅 添加键盘按键的方法

    pygame游戏之旅 添加键盘按键的方法

    这篇文章主要为大家详细介绍了pygame游戏之旅的第4篇,教大家如何添加键盘按键,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Python调用REST API接口的几种方式汇总

    Python调用REST API接口的几种方式汇总

    这篇文章主要介绍了Python调用REST API接口的几种方式汇总,帮助大家更好的利用python进行自动化运维,感兴趣的朋友可以了解下
    2020-10-10
  • Python爬取某平台短视频的方法

    Python爬取某平台短视频的方法

    这篇文章主要介绍了Python爬取某平台短视频的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Python pymysql连接数据库并将查询结果转化为Pandas dataframe

    Python pymysql连接数据库并将查询结果转化为Pandas dataframe

    这篇文章主要为大家介绍了Python pymysql连接数据库并将结果转化为Pandas dataframe实现方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Python进程间通信 multiProcessing Queue队列实现详解

    Python进程间通信 multiProcessing Queue队列实现详解

    这篇文章主要介绍了python进程间通信 mulitiProcessing Queue队列实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Python数据分析Pandas全攻略

    Python数据分析Pandas全攻略

    在Python中,Pandas是一个非常强大的数据处理和分析库,广泛应用于数据科学和数据分析领域,接下来通过本文介绍Python数据分析Pandas全攻略包括安装与导入示例,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • python中validators库的使用方法详解

    python中validators库的使用方法详解

    这篇文章主要介绍了python中validators库的使用方法详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 小结Python用fork来创建子进程注意事项

    小结Python用fork来创建子进程注意事项

    今天看到别人的源代码中有 fork 子进程来操作数据。但是由于 fork 之后,没有及时的退出,导致系统中的Python进程越来越多,子进程越来越多了。
    2014-07-07
  • MNIST数据集转化为二维图片的实现示例

    MNIST数据集转化为二维图片的实现示例

    这篇文章主要介绍了MNIST数据集转化为二维图片的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Python自动化办公之PPT段落的使用

    Python自动化办公之PPT段落的使用

    这篇文章将详细为大家介绍一些Python中PPT段落的一些使用:获取段落、段落添加内容、自定义段落等,文中的示例代码讲解详细,需要的可以参考一下
    2022-05-05

最新评论