python內(nèi)置模塊OS?實(shí)現(xiàn)SHELL端文件處理器
更新時(shí)間:2022年09月26日 09:22:42 作者:zxhtom
這篇文章主要介紹了python內(nèi)置模塊OS實(shí)現(xiàn)SHELL端文件處理器,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
OS 模塊
- 在講解包模塊時(shí)我們提到通過
sys模塊進(jìn)行查看全局包路徑查看于注冊,今天我們嘗試了解下OS模塊,這個(gè)模塊主要作用就是打通程序于系統(tǒng)之間的通信。 - 通過
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ù)器上通過
ls -al查看文件信息,其中就包括文件大小這個(gè)屬性,作為python內(nèi)置的模塊肯定也少不了相關(guān)的屬性獲取功能。
?import os
?print(os.path.getsize('demo.txt'))獲取路徑及文件

- 之前在操作 Java 時(shí)經(jīng)常需要獲取文件所在目錄,當(dāng)時(shí)都是通過Java對象屬性獲取的,而 Python 中自動幫我們處理了。
獲取絕對路徑
- 不知道你有沒有注意到上面我們獲取腳本所在目錄時(shí)通過
../os等方式,包括獲取路徑及文件章節(jié)中我們手動敲出來文件的完整路徑,實(shí)際上通過python自帶了。
?import os
?print(os.path.abspath('practice.py'))
返回文件名
?import os
?print(os.path.basename('practice.py'))
獲取文件路徑

- 僅限我們傳入了全路徑的文件
dirname才起作用,這個(gè)感覺有點(diǎn)雞肋
路徑拼接
- 我們經(jīng)常會出現(xiàn)路徑地址的拼接。windows , linux 文件分隔符不一樣,Java 中給我們提供了一個(gè)獲取分隔符的變量,但是python 直接忽略掉分隔符了,直接給我們提供一個(gè)拼接的方法。
?import os
?print(os.path.join('parent','child'))
不帶path
獲取平臺
- 有的時(shí)候我們需要根據(jù)不同平臺來執(zhí)行不同的操縱,這個(gè)時(shí)候就需要獲取到平臺信息了。
?import os ?print(os.name)

獲取所有文件
- 既然是模塊肯定少不了我們常用的功能,之前提到過了我們經(jīng)常在服務(wù)器上執(zhí)行
ls -al.
?import os ?print(os.listdir)

當(dāng)前工作路徑
- 很多時(shí)候我們不回直接在腳本路徑執(zhí)行腳本,往往都是通過絕對路徑或者相對路徑來執(zhí)行腳本,有的時(shí)候腳本會依賴執(zhí)行路徑上的某些文件,所以獲取執(zhí)行腳本路徑至關(guān)重要。

目錄操作
- 關(guān)于文件目錄新建刪除相信也很重要吧。下面我們來看看如何操作。
?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)號 |
| st_dev | 駐留的設(shè)備 |
| st_nlink | 節(jié)點(diǎn)連接數(shù) |
| st_uid | 擁有者用戶 |
| st_gid | 所屬組ID |
| st_size | 文件大小 |
| st_atime | 上次訪問時(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愛好者,我還是很喜歡使用shell 來實(shí)現(xiàn)的,尤其是在做系統(tǒng)初始化的時(shí)候這個(gè)時(shí)候沒有python ,而shell 是linux 系統(tǒng)自帶的,所以shell 腳本的時(shí)候還是很有必要的,我個(gè)人也是shell+python 相互輔佐的存在。我們知道shell 中直接
python xxx.py。 但是python 如何執(zhí)行shell 呢?
?import os
?name=os.system('ls -al') - 上面我們提到獲取平臺信息
os.name,我們可以根據(jù)這個(gè)命令來通過os.system('cmd')指定不同系統(tǒng)的cmd 命令。
到此這篇關(guān)于python內(nèi)置模塊OS 實(shí)現(xiàn)SHELL端文件處理器的文章就介紹到這了,更多相關(guān)python SHELL處理器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c++生成dll使用python調(diào)用dll的方法
這篇文章主要介紹了使用c++為python寫dll庫的方法,開發(fā)環(huán)境是VS2013+Python3.3,vs2013寫cpp的dll擴(kuò)展,然后用python3.3解釋執(zhí)行。下面看詳細(xì)步驟吧2014-01-01
Pycharm2020最新激活碼|永久激活(附最新激活碼和插件的詳細(xì)教程)
這篇文章主要介紹了Pycharm2020最新激活碼|永久激活(附最新激活碼和插件的詳細(xì)教程),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
對python numpy數(shù)組中冒號的使用方法詳解
下面小編就為大家分享一篇對python numpy數(shù)組中冒號的使用方法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Pygame坦克大戰(zhàn)游戲開發(fā)實(shí)戰(zhàn)詳解代碼
《坦克大戰(zhàn)》以二戰(zhàn)坦克為題材,既保留了射擊類游戲的操作性,也改進(jìn)了射擊類游戲太過于復(fù)雜難玩的高門檻特點(diǎn),集休閑與競技于一身。經(jīng)典再度襲來,流暢的畫面,瘋狂的戰(zhàn)斗,讓玩家再次進(jìn)入瘋狂坦克的世界。玩家的目標(biāo)是控制坦克躲避危險(xiǎn),消滅掉所有的敵人即可進(jìn)入下一關(guān)2022-02-02
python中使用smtplib和email模塊發(fā)送郵件實(shí)例
python腳本發(fā)郵件,一般會用到smtplib和email這兩個(gè)模塊。看看該模塊怎么使用,先看smtplib模塊。 smtplib模塊定義了一個(gè)簡單的SMTP客戶端,可以用來在互聯(lián)網(wǎng)上發(fā)送郵件2014-04-04

