python內(nèi)置模塊OS?實(shí)現(xiàn)SHELL端文件處理器
OS 模塊
- 在講解包模塊時(shí)我們提到通過(guò)
sys
模塊進(jìn)行查看全局包路徑查看于注冊(cè),今天我們嘗試了解下OS模塊,這個(gè)模塊主要作用就是打通程序于系統(tǒng)之間的通信。 - 通過(guò)
help('modules')
我們能夠發(fā)現(xiàn)OS
是作為python的內(nèi)置模塊出現(xiàn)的。
帶path
判斷文件
?import os ?print(os.path.isfile('demo.txt'))
- 如果是文件則返回
True
否則返回False
。
判斷文件夾
?import os ?print(os.path.isdir('../os'))
- 其中參數(shù)我們傳遞一個(gè)路徑,如果是文件夾返回
True
否則返回False
。
判斷文件是否存在
- 這個(gè)應(yīng)該是我們經(jīng)常在腳本中使用的操作,存在我們則使用不存在則需要?jiǎng)?chuàng)建文件填充默認(rèn)內(nèi)容。
?import os ?print(os.path.exists('ttttt.txt'))
- 同樣如果存在則返回
True
否則返回False
。
獲取文件大小
- 我們經(jīng)常在服務(wù)器上通過(guò)
ls -al
查看文件信息,其中就包括文件大小這個(gè)屬性,作為python
內(nèi)置的模塊肯定也少不了相關(guān)的屬性獲取功能。
?import os ?print(os.path.getsize('demo.txt'))
獲取路徑及文件
- 之前在操作 Java 時(shí)經(jīng)常需要獲取文件所在目錄,當(dāng)時(shí)都是通過(guò)Java對(duì)象屬性獲取的,而 Python 中自動(dòng)幫我們處理了。
獲取絕對(duì)路徑
- 不知道你有沒(méi)有注意到上面我們獲取腳本所在目錄時(shí)通過(guò)
../os
等方式,包括獲取路徑及文件章節(jié)中我們手動(dòng)敲出來(lái)文件的完整路徑,實(shí)際上通過(guò)python自帶了。
?import os ?print(os.path.abspath('practice.py'))
返回文件名
?import os ?print(os.path.basename('practice.py'))
獲取文件路徑
- 僅限我們傳入了全路徑的文件
dirname
才起作用,這個(gè)感覺(jué)有點(diǎn)雞肋
路徑拼接
- 我們經(jīng)常會(huì)出現(xiàn)路徑地址的拼接。windows , linux 文件分隔符不一樣,Java 中給我們提供了一個(gè)獲取分隔符的變量,但是python 直接忽略掉分隔符了,直接給我們提供一個(gè)拼接的方法。
?import os ?print(os.path.join('parent','child'))
不帶path
獲取平臺(tái)
- 有的時(shí)候我們需要根據(jù)不同平臺(tái)來(lái)執(zhí)行不同的操縱,這個(gè)時(shí)候就需要獲取到平臺(tái)信息了。
?import os ?print(os.name)
獲取所有文件
- 既然是模塊肯定少不了我們常用的功能,之前提到過(guò)了我們經(jīng)常在服務(wù)器上執(zhí)行
ls -al
.
?import os ?print(os.listdir)
當(dāng)前工作路徑
- 很多時(shí)候我們不回直接在腳本路徑執(zhí)行腳本,往往都是通過(guò)絕對(duì)路徑或者相對(duì)路徑來(lái)執(zhí)行腳本,有的時(shí)候腳本會(huì)依賴執(zhí)行路徑上的某些文件,所以獲取執(zhí)行腳本路徑至關(guān)重要。
目錄操作
- 關(guān)于文件目錄新建刪除相信也很重要吧。下面我們來(lái)看看如何操作。
?import os ?os.mkdir('test') ?print(os.getcwd()+'工作下的文件列表'+os.listdir()) ?os.rmdir('test')
重命名文件
?import os ?os.rename(old,new)
文件屬性
- 我們能夠看到打印了很多屬性。
屬性 | 作用 |
---|---|
st_mode | 權(quán)限模式 |
st_ino | 節(jié)點(diǎn)號(hào) |
st_dev | 駐留的設(shè)備 |
st_nlink | 節(jié)點(diǎn)連接數(shù) |
st_uid | 擁有者用戶 |
st_gid | 所屬組ID |
st_size | 文件大小 |
st_atime | 上次訪問(wèn)時(shí)間 |
st_mtime | 最后一次修改時(shí)間 |
st_ctime | 操作系統(tǒng)報(bào)告的ctime |
修改權(quán)限殺死進(jìn)程
?os.chmod(file) ?os.get_terminal_size() ?os.kill(10884,signal.SIGKILL)
打通shell
- 作為一個(gè)shell愛(ài)好者,我還是很喜歡使用shell 來(lái)實(shí)現(xiàn)的,尤其是在做系統(tǒng)初始化的時(shí)候這個(gè)時(shí)候沒(méi)有python ,而shell 是linux 系統(tǒng)自帶的,所以shell 腳本的時(shí)候還是很有必要的,我個(gè)人也是shell+python 相互輔佐的存在。我們知道shell 中直接
python xxx.py
。 但是python 如何執(zhí)行shell 呢?
?import os ?name=os.system('ls -al')
- 上面我們提到獲取平臺(tái)信息
os.name
,我們可以根據(jù)這個(gè)命令來(lái)通過(guò)os.system('cmd')
指定不同系統(tǒng)的cmd 命令。
到此這篇關(guān)于python內(nèi)置模塊OS 實(shí)現(xiàn)SHELL端文件處理器的文章就介紹到這了,更多相關(guān)python SHELL處理器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django中url與path及re_path的區(qū)別說(shuō)明
這篇文章主要介紹了Django中url與path及re_path的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Pycharm-community-2020.2.3 社區(qū)版安裝教程圖文詳解
這篇文章主要介紹了Pycharm-community-2020.2.3 社區(qū)版安裝教程圖文詳解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Python使用itcaht庫(kù)實(shí)現(xiàn)微信自動(dòng)收發(fā)消息功能
這篇文章主要介紹了Python使用itcaht庫(kù)實(shí)現(xiàn)微信自動(dòng)收發(fā)消息功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Python實(shí)現(xiàn)提取PDF簡(jiǎn)歷信息并存入Excel
作為人力資源部的小伙伴,常常需要把他人投遞的PDF簡(jiǎn)歷資料里的關(guān)鍵信息數(shù)據(jù),提取到excel表中匯總,這個(gè)時(shí)候用Python實(shí)現(xiàn)最合適, 快來(lái)學(xué)習(xí)一下如何實(shí)現(xiàn)吧2022-04-04Python selenium如何設(shè)置等待時(shí)間
這篇文章主要為大家詳細(xì)介紹了Python selenium如何設(shè)置等待時(shí)間,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09python+selenium識(shí)別驗(yàn)證碼并登錄的示例代碼
本篇文章主要介紹了python+selenium識(shí)別驗(yàn)證碼并登錄的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12python讀寫excel數(shù)據(jù)--pandas詳解
這篇文章主要為大家詳細(xì)介紹了python操作EXCEL讀數(shù)據(jù)、寫數(shù)據(jù)的實(shí)例源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09