Python刪除空檔案和空資料夾的方法

2022-10-04 22:24:21 字數 2165 閱讀 3490

#-*- 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 時,則...