亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實(shí)現(xiàn)執(zhí)行Shell命令并獲取輸出

 更新時間:2023年10月23日 14:11:51   作者:跡憶客  
這篇文章主要介紹了如何借助?os.system()?從?Python?腳本執(zhí)行?cmd?命令,以及如何借助?Python?中的?subprocess?模塊以更簡單的方式從腳本執(zhí)行?cmd?命令,感興趣的小伙伴可以了解下

在本文中,我們將學(xué)習(xí)如何借助 os.system() 從 Python 腳本執(zhí)行 cmd 命令。 我們還將學(xué)習(xí)如何借助 Python 中的 subprocess 模塊以更簡單的方式從腳本執(zhí)行 cmd 命令。

從 Python 腳本執(zhí)行 CMD 命令并使用 os.system() 獲取輸出

我們出于不同目的在命令提示符或任何其他終端中執(zhí)行終端命令。 但是,有時,需要在腳本內(nèi)運(yùn)行特定命令。

我們將了解如何直接在 Python 腳本中執(zhí)行它們。 當(dāng)我們進(jìn)行服務(wù)器配置時,它非常方便。

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

現(xiàn)在,我們將了解如何在 Python 腳本中包含相同的內(nèi)容。 為此,我們將導(dǎo)入一個名為 os.

os 模塊將幫助我們與操作系統(tǒng)進(jìn)行交互。 os 模塊對文件和文件夾管理等操作系統(tǒng)任務(wù)提供廣泛的支持。

讓我們進(jìn)入代碼。 system() 是一個在類似 shell 中執(zhí)行命令的方法,因此如果我們給它任何命令,它就會繼續(xù)執(zhí)行它們,就像我們在終端中執(zhí)行它們一樣。

系統(tǒng)函數(shù)還可以執(zhí)行一堆命令。 它執(zhí)行您可以在終端中運(yùn)行的每個命令。

我們將使用 try 塊,在該塊內(nèi),我們將使用 system() 方法,這將幫助我們使用終端與操作系統(tǒng)進(jìn)行交互。 如果 try 塊沒有執(zhí)行指定的命令,我們將進(jìn)入 except 塊。

在 system() 方法內(nèi)部,我們必須傳遞命令,但命令類型是 cmd。 為此,我們使用 /k,并在單引號或雙引號內(nèi)輸入我們的命令。

import os

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

讓我們運(yùn)行一下,看看這是否給出了準(zhǔn)確的輸出。

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

我們可以看到輸出與命令提示符給出的相同。

您可以執(zhí)行很多命令。 您可以打開記事本或計算器,也可以查看系統(tǒng)信息等等。

如果你想獲取命令返回的內(nèi)容,可以使用 os 模塊的 popen() 函數(shù)獲取。 在這個函數(shù)內(nèi)部,我們可以傳遞命令并使用 readlines() 方法來獲取其內(nèi)容。

我們可以使用很多方法來獲取干凈的數(shù)據(jù)。 這取決于你。

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

我們可以在任何地方使用這些命令,例如類、循環(huán)和函數(shù)。 這將正常工作,無需將其包裝在函數(shù)中。

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 腳本執(zhí)行 CMD 命令并使用 Subprocess 模塊獲取輸出

與子流程交互是一項(xiàng)基本技能。 不建議使用 os 模塊在 Python 腳本內(nèi)執(zhí)行終端命令。

使用 os.system() 執(zhí)行終端命令是在 Python 中運(yùn)行命令的一種非常簡單的方法。

os.system() 的功能有限; 正確的方法是使用一個名為 subprocess 的模塊,這使得執(zhí)行終端命令不太具有挑戰(zhàn)性。 使用 subprocess 模塊,我們可以運(yùn)行當(dāng)前正在處理的所有操作系統(tǒng)命令。

這就是我們在操作系統(tǒng)中運(yùn)行所有現(xiàn)有命令的方式,例如打開記事本或檢查當(dāng)前工作目錄,或我們可以使用 subprocess 模塊執(zhí)行的任何其他操作。

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

到此這篇關(guān)于Python實(shí)現(xiàn)執(zhí)行Shell命令并獲取輸出的文章就介紹到這了,更多相關(guān)python執(zhí)行Shell命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論