Python刪除空文件和空文件夾的方法
更新時(shí)間:2015年07月14日 10:04:31 作者:G0561
這篇文章主要介紹了Python刪除空文件和空文件夾的方法,涉及Python針對(duì)文件與文件夾的遍歷、判斷與刪除等技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了Python刪除空文件和空文件夾的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
#-*- coding:cp936 -*-
"""
os.walk()
函數(shù)聲明:walk(top,topdown=True,onerror=None)
1>參數(shù)top表示需要遍歷的目錄樹的路徑
2>參數(shù)topdown的默認(rèn)值是"True",表示首先返回目錄樹下的文件,然后在遍歷目錄樹的子目錄.Topdown的值為"False"時(shí),
則表示先遍歷目錄樹的子目錄,返回子目錄下的文件,最后返回根目錄下的文件
3>參數(shù)onerror的默認(rèn)值是"None",表示忽略文件遍歷時(shí)產(chǎn)生的錯(cuò)誤.如果不為空,則提供一個(gè)自定義函數(shù)提示錯(cuò)誤信息后繼續(xù)
遍歷或拋出異常中止遍歷
4>該函數(shù)返回一個(gè)元組,該元組有3個(gè)元素,這3個(gè)元素分別表示每次遍歷的路徑名,目錄列表和文件列表
在2.5版中新增加了一個(gè)叫partition的函數(shù),它可以做什么呢?舉一個(gè)小例子:
>>> 'http://www.donews.net/limodou'.partition('://')
('http', '://', 'www.donews.net/limodou')
>>> 'file:/a.html'.partition('://')
('file:/a.html', ", ")
從第一個(gè)例子可以看出,它用來根據(jù)指定的分隔符將字符串進(jìn)行分割,如果字符串包含指定的分隔符,則返回一個(gè)3元的tuple,
第一個(gè)為分隔符左邊的子串,第二個(gè)為分隔符本身,第三個(gè)為分隔符右邊的子串。第二個(gè)例子說明,如果找不到指定的分隔符,
則返回仍然是一個(gè)3元的tuple,第一個(gè)為整個(gè)字符串,第二和第三個(gè)為空串
"""
import os, sys
def remove_empty_dir(path):
print 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: #對(duì)文件列表進(jìn)行掃描
try:
fn = os.path.join(root, file) #將路徑名和文件名拼接起來
size = os.path.getsize(fn) #獲取文件名大小
if size != 0:
b = root
while(b != path):
a[b] = 1
b = b.rpartition("\\")[0] #保存上一級(jí)目錄名
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[path] = 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')
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- python刪除某個(gè)目錄文件夾的方法
- Python徹底刪除文件夾及其子文件方式
- python刪除文件夾下相同文件和無法打開的圖片
- Python實(shí)現(xiàn)拷貝/刪除文件夾的方法詳解
- Python批處理刪除和重命名文件夾的實(shí)例
- Python實(shí)現(xiàn)刪除時(shí)保留特定文件夾和文件的示例
- python 刪除非空文件夾的實(shí)例
- Python 實(shí)現(xiàn)刪除某路徑下文件及文件夾的實(shí)例講解
- Python簡單實(shí)現(xiàn)自動(dòng)刪除目錄下空文件夾的方法
- Python實(shí)現(xiàn)遞歸遍歷文件夾并刪除文件
- Python實(shí)現(xiàn)刪除當(dāng)前目錄下除當(dāng)前腳本以外的文件和文件夾實(shí)例
- python 兩種方法刪除空文件夾
相關(guān)文章
python opencv 檢測(cè)移動(dòng)物體并截圖保存實(shí)例
這篇文章主要介紹了python opencv 檢測(cè)移動(dòng)物體并截圖保存實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Matplotlib繪圖基礎(chǔ)之動(dòng)畫繪制詳解
matplotlib的動(dòng)畫一直是一個(gè)強(qiáng)大但使用頻率不高的功能,通過動(dòng)畫來展示數(shù)據(jù)和模型的變化過程,可使數(shù)據(jù)的可視化更加生動(dòng)形象,下面就跟隨小編一起學(xué)習(xí)一下Matplotlib是如何繪制動(dòng)畫的吧2023-08-08
python3實(shí)現(xiàn)字符串的全排列的方法(無重復(fù)字符)
這篇文章主要介紹了python3實(shí)現(xiàn)字符串的全排列的方法(無重復(fù)字符),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
Python接口自動(dòng)化淺析登錄接口測(cè)試實(shí)戰(zhàn)
本文主要接好了python接口自動(dòng)化的接口概念、接口用例設(shè)計(jì)及登錄,跟隨本文章來進(jìn)行一個(gè)接口用例設(shè)計(jì)及登錄接口測(cè)試實(shí)戰(zhàn),有需要的朋友可以參考下2021-08-08
Pyqt5設(shè)置返回鍵和跳轉(zhuǎn)頁面鍵的示例代碼
這篇文章主要介紹了Pyqt5設(shè)置返回鍵和跳轉(zhuǎn)頁面鍵的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

