每次寫腳本的時候,pycharm都會自動生成緩存文件__pycache__文件,在提交代碼的時候還得挨個刪除,於是自己寫一小段代碼自動循環刪除此目錄及下面的文件。
思路:
先將目錄及其下的文件讀取出來,然后刪除目錄下的文件,再清除空目錄即可。
第一步:
import os
利用os.walk(top, [,topdown][,onerror][,followlinks])遍歷目錄
其中:
top:指定要遍歷內容的根目錄
topdown:可選參數,用於指定遍歷順序。True表示自上而下遍歷(即先遍歷根目錄);若為False,則先遍歷最后一級子目錄。默認為True。
返回值:返回值包含3個元素的元組的生成器。其中,dirpath表示當前遍歷的路徑,是一個字符串;dirnames表示當前目錄下包含的子目錄,是一個列表;filenames表示當前路徑下包含的文件,是一個列表。
第二步:
os.remove:用來刪除文件
os.rmdir:用來刪除目錄,值的注意的是,若目錄下有文件,即目錄不為空,則刪除會失敗,拋出錯誤。
利用for循環,先刪除目錄下的文件,然后再清空目錄。這里需要注意,要從最后一級的子目錄開始刪除文件,防止文件沒有刪除干凈,導致刪除目錄失敗;
代碼如下:
1 import os
tuples = os.walk(top=top, topdown=False) 2 for root, dirs, files in tuples: 3 if "__pycache__" in root: 4 for name in files: 5 os.remove(os.path.join(root, name)) 6 os.rmdir(os.path.join(root))
方法二:經查閱,python有個模塊更加強大,可以用一個命令刪除目錄及其下的文件,這個模塊是shutil:
代碼如下:
import os import shutil tuples = os.walk(top=top, topdown=False) for root, dirs, files in tuples: print(root, dirs, files) if "__pycache__" in root: shutil.rmtree(os.path.join(root))
python 真強大,只有想不到的,沒有它做不到的。