自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python 運(yùn)行 shell 命令的一些方法

開(kāi)發(fā)
一般來(lái)講,最好是用 python 自帶的函數(shù)或模塊,而不是直接調(diào)用其他程序或者操作系統(tǒng)的命令,我們來(lái)看一下 python 中有哪些自帶模塊或者方法可以實(shí)現(xiàn)。

哈嘍大家好,我是咸魚(yú)。

我們知道,python 在自動(dòng)化領(lǐng)域中被廣泛應(yīng)用,可以很好地自動(dòng)化處理一些任務(wù),就比如編寫(xiě) Python 腳本自動(dòng)化執(zhí)行重復(fù)性的任務(wù),如文件處理、數(shù)據(jù)處理、系統(tǒng)管理等需要運(yùn)行其他程序或者與操作系統(tǒng)交互的任務(wù),那么今天我們來(lái)看一下在 python 中如何運(yùn)行 shell 命令來(lái)與操作系統(tǒng)交互。

一般來(lái)講,最好是用 python 自帶的函數(shù)或模塊,而不是直接調(diào)用其他程序或者操作系統(tǒng)的命令,我們來(lái)看一下 python 中有哪些自帶模塊或者方法可以實(shí)現(xiàn)。

pathlib模塊

如果你需要?jiǎng)?chuàng)建或者刪除文件/目錄,檢查文件是否存在或者改變權(quán)限等,你完全不需要使用操作系統(tǒng)的命令,你可以完全通過(guò) pathlib 模塊來(lái)實(shí)現(xiàn),它有你需要的一切,甚至 glob、os.path 都可以不用。

我們來(lái)簡(jiǎn)單看一下關(guān)于這個(gè)模塊的例子:

tempfile模塊

在 Python 中臨時(shí)創(chuàng)建和處理文件時(shí),tempfile 模塊提供了方便的方法,它可以在臨時(shí)目錄中創(chuàng)建臨時(shí)文件和臨時(shí)文件夾,并提供了一些便利的函數(shù)和類來(lái)管理這些臨時(shí)文件:

shutil 模塊

前面我們知道 pathlib 模塊滿足了 python 中大多數(shù)與文件相關(guān)的需求,如果需要例如復(fù)制,移動(dòng),刪除或創(chuàng)建文件,可以使用 shutil 模塊:

os 模塊

os 模塊是 Python 中一個(gè)更老的、更底層的模塊,提供了與操作系統(tǒng)交互和執(zhí)行文件系統(tǒng)操作的功能,但是隨著 python 的發(fā)展,越來(lái)越多面向?qū)ο蟮?、更直觀和易于使用的模塊可以供大家使用,對(duì)于 os 模塊,大家可以了解一下就行了:

sh 模塊

sh 模塊不是 python 的標(biāo)準(zhǔn)模塊,它是一個(gè)第三方模塊,在使用之前我們需要安裝它:


pip install sh

當(dāng)我們通過(guò) sh 模塊去執(zhí)行一些 shell 命令時(shí),sh 模塊會(huì)嘗試在本地環(huán)境變量($PATH)中查找?guī)в性撁Q的內(nèi)置 shell 命令或二進(jìn)制文件,如果沒(méi)有找到,可以自己添加命令路徑:

如果要將命令的輸出寫(xiě)入到文件里面,可以使用 _out 參數(shù):

我們?cè)谇?shell 命令時(shí)通常會(huì)使用到管道符(|),在 sh 模塊中通過(guò) _in 參數(shù)來(lái)實(shí)現(xiàn):

對(duì)于異常處理,我們可以簡(jiǎn)單地處理 ErrorReturnCode 或 TimeoutException 異常:

責(zé)任編輯:趙寧寧 來(lái)源: 咸魚(yú)運(yùn)維雜談
相關(guān)推薦

2022-09-09 08:51:42

ShellLinux

2020-05-19 14:35:42

Shell腳本循環(huán)

2020-04-10 08:50:37

Shell腳本循環(huán)

2010-04-07 16:55:14

Unix命令

2009-06-18 13:42:48

Hibernate s

2017-05-10 14:49:52

Kotlin語(yǔ)言Java

2021-04-19 17:25:08

Kubernetes組件網(wǎng)絡(luò)

2018-03-26 12:01:30

數(shù)據(jù)庫(kù)PostgreSQL命令

2012-06-15 09:41:40

Linux內(nèi)核

2017-02-21 13:36:11

iosAPP性能

2012-09-11 09:16:52

Hadoop

2010-01-15 10:34:59

Linux命令行操作

2009-09-04 13:11:25

ASP.NET生成XM

2021-10-26 13:55:53

搞定系統(tǒng)設(shè)計(jì)

2009-08-27 10:06:15

Scala的構(gòu)造方法

2013-06-26 14:00:40

routeros軟路由routero

2010-03-11 14:16:16

Linux route

2022-11-09 19:02:10

Linux

2017-11-29 18:52:13

Python新手編碼建議

2009-11-23 10:14:10

Linuxroute命令輸出信息
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)