目錄操作
在python中,沒有提供直接操作目錄的函式或者物件,需要使用內建的os和os.path模組實現
os模組是python內建的與作業系統功能和檔案系統功能相關的模組
該模組中的語句的執行結構通常與作業系統有關,在不同的作業系統上執行,所得到的的結果可能不同
常用的目錄操作主要有:
判斷目錄是否存在
建立目錄
刪除目錄
重新命名目錄
遍歷目錄等
使用os模組或者os.path模組時,需要先import
import os
os.getcwd():返回當前的工作目錄
os.listdir(path):返回列表,存放指定路徑下的檔案和目錄資訊
os.mkdirs(path1/path2...[,mode]):建立多級目錄,該函式用遞迴的方法建立目錄 ,類似mkdir -p
os.rmdir(path):刪除空目錄
os.removedirs(path1/path2...):遞迴刪除多級空目錄
os.chdir(path):把path設定為當前工作目錄
os.walk(top[,topdown][,onerror):遍歷目錄樹,該方法返回乙個元組,包括所有路徑名、所有目錄列表和檔案列表3個元素
os.path模組也提供了一些操作目錄的函式
os.path.abspath(path):用於獲取檔案或目錄的絕對路徑
os.path.exists(path):用於判斷檔案或目錄是否存在,如果存在則返回true,否則返回false
os.path.join(path,name):將目錄或者檔名拼接起來
os.path.splitext():分離檔名和副檔名
os.path.basename(path):從乙個目錄中提取檔名
os.path.dirname(path):從乙個路徑中提取檔案路徑,不包括檔名
os.path.isdir(path):用於判斷是否是有效路徑
示例1:建立目錄
建立目錄前,先判斷目錄是否存在,如果不存在,則建立
if not os.path.exit(path):
os.mkdirs(path)
else:
pass
示例2:刪除非空目錄
使用os.rmdir()或者os.removedirs()只能刪除空目錄,刪除非空目錄需要使用python內建的標準模組shutil的rmtree()函式實現
示例3:os.walk()遍歷目錄
python中,os的walk()函式用於實現遍歷目錄的功能
os.walk(top[,topdown][,onerror][,followlinks])
top:用於指定要遍歷內容的根目錄
topdown:可選引數,用於指定遍歷的順序,如果是true,表示自上而下遍歷;如果是false,代表自下而上遍歷,預設true
onerror:可選引數,用於指定錯誤處理方式,預設為忽略,如果不想忽略,可以指定乙個錯誤錯誤處理函式,通常採用預設
返回值:返回乙個包括3個元素(dirpath,dirnames,filenames)的元組的生成器物件dirpath:表示當前遍歷的路徑,是乙個字串
dirnames:表示當前目錄下包含的子目錄,是乙個列表
filenames:表示當前路徑下包含的檔案,也是乙個列表
>>> for a,b,c in os.walk("d:\\python\\python3.6.4\\hjc"):
for i in b:
print(os.path.join(a,i))#所有的目錄
for i in c:
print(os.path.join(a,i))#所有的檔案
示例4:拼接路徑
把兩個路徑拼接為乙個路徑時,不要使用字串拼接,而要使用os.path.join()函式,這樣可以正確處理不同作業系統的路徑分隔符
如果採用字串拼接路徑和檔名,path+'分隔符'+file,這裡的分隔符對於不同的系統不一樣
windows系統的路徑分隔符為"\",linux系統的路徑分隔符為"/"
os.path.join()會自動查詢當前系統的路徑分隔符
示例5:windows上的路徑
windows系統的路徑分隔符為"\",python中"\"代表轉義字元,直接使用windows路徑會報錯
解決辦法:對路徑分割符"\"進行轉義,即將"\"替換為"\\"
將"\"替換為"/"
不進行轉義,在path前加"r"或者"r",該字串將原樣輸出
>>> import os
>>> os.chdir('c:\users\hjc\desktop\python')
syntaxerror: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \u******xx escape
>>> os.chdir(b'c:\users\hjc\desktop\python')
>>> os.getcwd()
'c:\\users\\hjc\\desktop\\python'
在idle中不行,但是在指令碼的引數中可以,估計是自動做了轉換
**:importos,sys
file = sys.ar**[1]
print(file)
ifos.path.exists(file):
os.chdir(file)
print(os.getcwd())
else:
print('not exits')
執行:d:\projects\demo>python test.py c:\users\hjc\desktop\python
c:\users\hjc\desktop\python
c:\users\hjc\desktop\python
python建立目錄語句是
我們在使用程式開發的時候,乙個優秀的專案離不開目錄的管理,我們通常會在指定目下存放相同型別的檔案,我們在這一節來學習如何在程式中建立目錄。1.建立一級目錄 在os模組中存在建立目錄的函式os.mkdir 它的語法格式為 os.mkdir path path為我們要建立的目錄名字,可以使用絕對路徑,也...
Python 建立目錄
import os os.mrkdir d demo 建立目錄 mrkdir 無法傳建立多級目錄 def mrkdir path 建立遞迴函式 建立多級目錄 if not os.path.exists d demo test python 判斷路徑是否存在 os.mrkdir d demo test...
python建立目錄函式 python 建立目錄
python對檔案的操作還算是方便的,只需要包含os模組進來,使用相關函式即可實現目錄的建立。主要涉及到三個函式 1 os.path.exists path 判斷乙個目錄是否存在 2 os.makedirs path 多層建立目錄 3 os.mkdir path 建立目錄 demo 直接上 def ...