網(wǎng)站首頁 編程語言 正文
一、os常用方法
1.獲取當(dāng)前路徑 os.getcwd()
# coding:utf-8 import os if __name__ == '__main__': ? ? print(os.getcwd()) ?# G:\workSpace\py_d
2.獲取指定路徑下有哪些文件和目錄,os.listdir(path)返回一個list
# coding:utf-8 import os if __name__ == '__main__': ? ? print(os.listdir(os.getcwd())) ?# ['.idea', 'main.py', 'os_module.py', 'sk']
3.創(chuàng)建目錄(一級) os.mkdir(paht)
os.mkdir(path) 創(chuàng)建目錄:
?以下兩種情況會報錯:
- ?2.要創(chuàng)建目錄的上級目錄不存在(a不存在,則不能創(chuàng)建b目錄)
- ?3.要創(chuàng)建的目錄已存在(b存在,則不能創(chuàng)建b目錄)
# coding:utf-8 import os if __name__ == '__main__': ? ? os.mkdir('sk/a/b') ?# 在當(dāng)前sk/a 目錄中創(chuàng)建b目錄 ? ? # os.mkdir(os.path.join(os.getcwd(), 'sk', 'a', 'b')) 和上面的一樣,只不過換成了絕對路徑
4.刪除文件 os.remove(path)
# coding:utf-8 import os if __name__ == '__main__': ? ? """ ? ? os.remove(path) ? ? 要求path是文件且存在 ? ? """ ? ? os.remove("sk/a/b/503.py") ? ? # os.remove(os.path.join(os.getcwd(), 'sk', 'a', 'b', '503.py')) 和上面的一樣,只不過路徑換成絕對路徑了
5.遞歸刪除空目錄 os.removedirs(path)
# coding:utf-8 import os if __name__ == '__main__': ? ? """ ? ? os.removedirs(path) ? ? 如果最底層目錄不是空目錄直接報錯(s2不是空目錄則報錯) ? ? 從最第底層目錄開始刪,一直刪到最上層目錄(先刪s2,再刪s1),當(dāng)要刪除的目錄不是空目錄時停止(s1不是空目錄則停止) ? ? """ ? ? os.removedirs('s1/s2') ? ? # os.removedirs(os.path.join(os.getcwd(), 's1', 's2')) 和上面的一樣,只不過使用了絕對路徑
6.刪除空目錄 os.rmdir(path)
# coding:utf-8 import os if __name__ == '__main__': ? ? """ ? ? ? os.rmdir(path) ? ? ? path不存在且不是空目錄則報錯 ? ? """ ? ? os.rmdir('s1/s2')
7.創(chuàng)建多級目錄 os.makedirs(path)
# coding:utf-8 import os if __name__ == '__main__': ? ? """ ? ? os.makedirs(path,exists_ok=False) 創(chuàng)建多級目錄 ? ? 如果path目錄已存在則報錯,可以設(shè)置exist_ok 參數(shù)來抑制錯誤,exist_ok不等于False就不會拋出異常 ? ? """ ? ? os.makedirs("s1/s3") ? ? os.makedirs("s1/s3", exist_ok=True)
二、os.path 常用方法
1.路徑拼接 os.path.join(path1,path2…)
# coding:utf-8 import os if __name__ == '__main__': ? ? """ ? ? os.path.join(path1,path2......) ? ? 將多個路徑拼接形成新的路徑 ? ? """ ? ? print(os.path.join(os.getcwd(), 's1', 's2')) ?# G:\workSpace\py_d\s1\s2
2.路徑分離 os.path.split(path) 返回tuple
# coding:utf-8 import os if __name__ == '__main__': ? ? """ ? ? os.path.split(path) 分割路徑,返回一個tuple,由兩個元素構(gòu)成 ? ? 第2個元素是path中最后一層的目錄或者文件 ? ? 第1個元素是path中除去第二個元素后剩余的路徑,可以為空字符串 ? ? """ ? ? path = os.path.join(os.getcwd(), 's1', 's2') ? ? print(path) ?# G:\workSpace\py_d\s1\s2.my ? ? print(os.path.split(path)) ?# ('G:\\workSpace\\py_d\\s1', 's2.my') ? ? print(os.path.split('dir1')) ?# ('', 'dir1')
3.判斷是否是目錄 os.path.isdir(path)
# coding:utf-8 import os if __name__ == '__main__': ? ? """ ? ? os.path.is_dir(path) 判斷路徑是不是目錄,當(dāng)路徑不存在也返回False ? ? """ ? ? print(os.path.isdir(os.getcwd())) ?# True ? ? print(os.path.isdir(os.path.join(os.getcwd(), 'main.py'))) ?# False 這是文件 ? ? print(os.path.isdir('http://xxx.com')) ?# 不存在也返回False
4.判斷是否是文件 os.path.isfile(paht)
# coding:utf-8 import os if __name__ == '__main__': ? ? """ ? ? os.path.is_file(path) 判斷路徑是不是文件,當(dāng)路徑不存在也返回False ? ? """ ? ? print(os.path.isfile(os.getcwd())) ?# False 這是目錄 ? ? print(os.path.isfile(os.path.join(os.getcwd(), 'main.py'))) ?# True 是文件 ? ? print(os.path.isfile(os.path.join(os.getcwd(), 'abc'))) ?# False 不存在也返回False
5.判斷路徑是否存在 os.path.exists(path)
# coding:utf-8 import os if __name__ == '__main__': ? ? """ ? ? os.path.exists(path) 判斷路徑是不是文件,當(dāng)路徑不存在也返回False ? ? """ ? ? print(os.path.exists(os.path.join(os.getcwd(), 'main.py'))) ?# True main.py存在 ? ? print(os.path.exists(os.path.join(os.getcwd(), 'abc.py'))) ?# False abc.py 不存在
6.判斷路徑是不是絕對路徑 os.path.isabs(path)
# coding:utf-8 import os if __name__ == '__main__': ? ? """ ? ? os.path.abs(path) 判斷路徑是不是絕對路徑,與存不存在無關(guān) ? ? """ ? ? print(os.getcwd()) ?# G:\workSpace\py_d ? ? print(os.path.isabs(os.path.join(os.getcwd(), 'main.py'))) ?# True main.py存在 ? ? print(os.path.isabs(os.path.join(os.getcwd(), 'abc.py'))) ? # True abc.py不存在 ? ? print(os.path.isabs('a/b/c')) ?# False
原文鏈接:https://blog.csdn.net/qq_29744347/article/details/123082824?
相關(guān)推薦
- 2022-07-24 C++超詳細(xì)講解樹與二叉樹_C 語言
- 2022-05-31 C?語言的弱符號與弱引用你了解嗎_C 語言
- 2022-09-29 Kotlin協(xié)程launch原理詳解_Android
- 2022-06-01 Kubernetes集群的組成介紹_云和虛擬化
- 2022-04-17 小程序 底部懸浮的輸入框聚焦的時候 鍵盤緊貼輸入框
- 2023-06-19 C++開放封閉原則示例解析_C 語言
- 2022-03-22 C#中數(shù)據(jù)類型的轉(zhuǎn)換介紹_C#教程
- 2023-01-02 Flutter狀態(tài)管理Provider示例解析_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- 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錯誤: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)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支