#-*- coding:cp936 -*-
"""os.walk()
函式宣告:walk(top,topdown=true,onerror=none)
1>引數top表示需要遍歷的目錄樹的路徑
2>引數topdown的預設值是"true",表示首先返回目錄樹下的檔案,然後在遍歷目錄樹的子目錄.topdown的值為www.cppcns.com"false"時,
則表示先遍歷目錄樹的子目錄,返回子目錄下的檔案,最後返回根目錄下的檔案
3>引數onerror的預設值是"none",表示忽略檔案遍歷時產生的錯誤.如果不為空,則提供乙個自定義函式提示錯誤資訊後繼續
遍歷或丟擲異常中止遍歷
4>該函式返回乙個元組,該元組有3個元素,這3個元素分別表示每次遍歷的路徑名,目錄列表和檔案列表
在2.5版中新增加了乙個叫partition的函式,它可以做什麼呢?舉乙個小例子:
>>> 'file:/a.html'.pa程式設計客棧rtition('://')
('file:/a.html', ", ")
從第乙個例子可以看出,它用來根據指定的分隔符將字串進行分割,如果字串包含指定的分隔符,則返回乙個3元的tuple,
第乙個為分隔符左邊的子串,第二個為分隔符本身,第三個為分隔符右邊的子串。第二個例子說明,如果找不到指定的分隔符,
則返回仍然是乙個3元的tuple,第乙個為整個字串,第二和第三個為空串
"""import os, sys
def remove_empty_dir(path):
pri path
while(path[-1] == "\\"):
path = path[:-1]
print path
a = {}
for root, dirs, files in os.walk(path, false):
if len(files) == 0:
a[root] = 0
else:
for file in files: #對檔案列表進行掃瞄
try:
fn = os.path.join(root, file) #將路徑名和檔名拼接起來
size = os.path.getsize(fn) #獲取檔名大小
if siz != 0:
b = root
while(b != path):
a[b] = 1
b = b.rpartition("\\")[0] #儲存上一級目錄名
a[path] = 1
else:
try:
os.remove(fn) #刪除檔名為空的檔案
a[root] = 0
except (windowserror):
b = root
while(b != path):
a[b] = 1
b = b.rpartition("\\")[0]
a = 1
except windowserror:
b = root
while(b != path):
a[b] = 1
b = b.rpartition("\\")[0]
a[path] = 1
if a[root]:
break;
empty_dirs =
for i, j in a.iteritems():
if j == 0:
print i
empty_dirs.insert(0, i)
del a
empty_dirs.sort(reverse=true)
for i in empty_dirs:
try:
os.rmdir(i) #刪除目錄
print "%s 刪掉了!!" % (i)
except (windowserror):
print "%s 刪不掉!!" % (i)
if __name__ == "__main__":
remove_empty_dir('f:\\b')
本文標題: python刪除空檔案和空資料夾的方法
本文位址:
python 清空檔案 python 刪除檔案
import os 刪除檔案 os.remove 刪除空目錄 os.rmdir 遞迴刪除空目錄 os.removedirs 遞迴刪除目錄和檔案 類似dos命令deletetree 方法1 自力更生,艱苦創業 delete everything reachable from the directory...
linux 批量刪除空檔案或空資料夾
1.批量刪除空檔案 大小等於0的檔案 find name type f size 0c xargs n 1 rm f 2.刪除指定size大小檔案 find name type f size 1024c xargs n 1 rm f ps 此處即刪除1k大小的檔案.但注意不要用 size 1k,這個...
刪除空目錄和空檔案
coding cp936 os.walk 函式宣告 walk top,topdown true,nerr r none 1 引數top表示需要遍歷的目錄樹的路徑 2 引數topdown的預設值是 true 表示首先返回目錄樹下的檔案,然後在遍歷目錄樹的子目錄.topdown的值為 false 時,則...