網(wǎng)站首頁(yè) 編程語(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
相關(guān)推薦
- 2023-08-01 elementui自定義Slider樣式
- 2022-03-28 c語(yǔ)言for、while和do-while循環(huán)之間的區(qū)別_C 語(yǔ)言
- 2022-03-10 使用.Net6中的WebApplication打造最小API_自學(xué)過程
- 2022-04-07 Android中絕對(duì)音量和相對(duì)音量設(shè)置_Android
- 2022-08-12 Python使用Opencv打開筆記本電腦攝像頭報(bào)錯(cuò)解問題及解決_python
- 2022-10-29 C#?CLR學(xué)習(xí)?C++使用namespace實(shí)例詳解_C 語(yǔ)言
- 2024-03-16 Spring獲取Bean的方式
- 2024-02-29 UNI-APP頁(yè)面跳轉(zhuǎn)時(shí)(uni.navigateTo),參數(shù)傳遞
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支