日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

python內(nèi)置模塊OS?實(shí)現(xiàn)SHELL端文件處理器_python

作者:zxhtom ? 更新時(shí)間: 2022-11-15 編程語(yǔ)言

OS 模塊

  • 在講解包模塊時(shí)我們提到通過?sys?模塊進(jìn)行查看全局包路徑查看于注冊(cè),今天我們嘗試了解下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對(duì)象屬性獲取的,而 Python 中自動(dòng)幫我們處理了。

獲取絕對(duì)路徑

  • 不知道你有沒有注意到上面我們獲取腳本所在目錄時(shí)通過?../os?等方式,包括獲取路徑及文件章節(jié)中我們手動(dòng)敲出來(lái)文件的完整路徑,實(shí)際上通過python自帶了。
?import os
?print(os.path.abspath('practice.py'))

返回文件名

?import os
?print(os.path.basename('practice.py'))

獲取文件路徑

  • 僅限我們傳入了全路徑的文件?dirname?才起作用,這個(gè)感覺有點(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)

獲取所有文件

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

當(dāng)前工作路徑

  • 很多時(shí)候我們不回直接在腳本路徑執(zhí)行腳本,往往都是通過絕對(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 上次訪問時(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 來(lái)實(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') 
  • 上面我們提到獲取平臺(tái)信息?os.name?,我們可以根據(jù)這個(gè)命令來(lái)通過?os.system('cmd')?指定不同系統(tǒng)的cmd 命令。

原文鏈接:https://juejin.cn/post/7142661450262282270

欄目分類
最近更新