函式:shutil.rmtree(path[, ignore_errors[, onerror]])
該函式刪除乙個完整的目錄樹,path必須指向乙個目錄。如果ignore_errors為true,移除失敗的error會被忽略。否則,該error將會被onerror處理。
onerror(funciton, path, excinfo)
onerror是乙個可呼叫的函式。function是產生異常的函式,可以是os.path.islink(), os.listdir(), os.remove()或os.rmdir()。path是傳遞到function的路徑名。excinfo是由sys.exc_info()返回的異常資訊。
程式例項
import os, shutil, stat
dirs = [d for d in os.listdir('.') if os.path.isfile(d)]
for d in dirs:
print(str(d))
files = [f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
print(str(f))
該段程式列出當前目錄下所有資料夾和檔名。
def on_rm_error(func, path, exc_info):
os.chmod(path, stat.s_iwrite)
os.unlink(path)
shutil.rmtree('dirname', onerror = on_rm_error)
該段程式定義了onerror函式,執行了shutil.rmtree,dirname為需要刪除的資料夾名,如此處輸入為檔名,同樣能被刪除,但是會產生oserror。
相關函式 詳解
os.listdir(path)
該函式返回乙個存有該路徑下條目名稱的list,list按任意順序儲存。
os.path.isfile(path)
若該路徑為現有的檔案,則返回true。
os.path.isdir(path)
若該路徑為現有的目錄,則返回true。
os.chmod(path, mode)
該函式改變該路徑的讀寫模式,如引數為stat.s_iwrite時,可授予唯讀路徑寫許可權。
os.unlink(path)
該函式等同於os.remove,用來移除(刪除)乙個檔案路徑,如果該路徑是乙個資料夾,oserror異常會被觸發。
步驟 1:獲取壓縮檔案名
函式:os.path.splitext(path)
該函式分離路徑名為一對(root, ext),ext為空或僅包含乙個句點 『.』的字尾名。如path為」file.tar.gz」,為獲取file名,**如下:
import os
filename = "file.tar.gz"
root = os.path.splitext(os.path.splitext(filename)[0])[0]
步驟 2:解壓縮資料夾
tarfile函式
使用tarfile解壓tar.gz格式的壓縮檔案,具體**如下所示:
import tarfile
tar = tarfile.open(filename)
tar.extractall()
tar.close()
步驟 3:獲取解壓後資料夾下的目錄路徑
函式:os.path.join(path, *paths)
該函式連線乙個或多個path成分,返回串聯的path。**示例如下:
folders = [os.path.join(root, dir) for dir in sorted(os.listdir(root)) if os.path.isdir(os.path.join(root, dir))]
該段**獲取root路徑下的所有條目名稱的list,與root連線,並將所有屬於directory的新path存入folders,即可得到root路徑下的所有資料夾名。 python對檔案的 python對檔案的讀寫
檔案 file 什麼是檔案 檔案是用於資料儲存和單位 檔案通常用來長期儲存資料 檔案中的資料是以位元組為單位進行順序儲存的 檔案的操作流程 1.開啟檔案 2.讀 寫檔案 3.關閉檔案 注 任何的作業系統,乙個應用程式同時開啟檔案的數量有最大數限制 檔案的開啟函式 open file,mode rt ...
Python筆記 對檔案的讀寫操作
寫入檔案 f open my path my file.txt w f.write hello there f.close with語法,該語法會在你使用完檔案後自動關閉該檔案 with open my path my file.txt r as f file data f.read 在之前的 中,...
python對檔案操作
python中對檔案 資料夾 檔案操作函式 的操作需要涉及到os模組和shutil模組。得到當前工作目錄,即當前python指令碼工作的目錄路徑 os.getcwd 返回指定目錄下的所有檔案和目錄名 os.listdir 函式用來刪除乙個檔案 os.remove 刪除多個目錄 os.removedi...