国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python刪除空文件和空文件夾的方法

2020-01-04 18:04:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這篇文章主要介紹了Python刪除空文件和空文件夾的方法,涉及Python針對(duì)文件與文件夾的遍歷、判斷與刪除等技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了Python刪除空文件和空文件夾的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:

 

 
  1. #-*- coding:cp936 -*- 
  2. ""
  3. os.walk() 
  4. 函數(shù)聲明:walk(top,topdown=True,onerror=None) 
  5. 1>參數(shù)top表示需要遍歷的目錄樹(shù)的路徑 
  6. 2>參數(shù)topdown的默認(rèn)值是"True",表示首先返回目錄樹(shù)下的文件,然后在遍歷目錄樹(shù)的子目錄.Topdown的值為"False"時(shí), 
  7. 則表示先遍歷目錄樹(shù)的子目錄,返回子目錄下的文件,最后返回根目錄下的文件 
  8. 3>參數(shù)onerror的默認(rèn)值是"None",表示忽略文件遍歷時(shí)產(chǎn)生的錯(cuò)誤.如果不為空,則提供一個(gè)自定義函數(shù)提示錯(cuò)誤信息后繼續(xù) 
  9. 遍歷或拋出異常中止遍歷 
  10. 4>該函數(shù)返回一個(gè)元組,該元組有3個(gè)元素,這3個(gè)元素分別表示每次遍歷的路徑名,目錄列表和文件列表 
  11. 在2.5版中新增加了一個(gè)叫partition的函數(shù),它可以做什么呢?舉一個(gè)小例子: 
  12. >>> 'http://www.donews.net/limodou'.partition('://'
  13. ('http''://''www.donews.net/limodou'
  14. >>> 'file:/a.html'.partition('://'
  15. ('file:/a.html'", "
  16. 從第一個(gè)例子可以看出,它用來(lái)根據(jù)指定的分隔符將字符串進(jìn)行分割,如果字符串包含指定的分隔符,則返回一個(gè)3元的tuple, 
  17. 第一個(gè)為分隔符左邊的子串,第二個(gè)為分隔符本身,第三個(gè)為分隔符右邊的子串。第二個(gè)例子說(shuō)明,如果找不到指定的分隔符, 
  18. 則返回仍然是一個(gè)3元的tuple,第一個(gè)為整個(gè)字符串,第二和第三個(gè)為空串 
  19. ""
  20. import os, sys 
  21. def remove_empty_dir(path): 
  22. print path 
  23. while(path[-1] == "//"): 
  24. path = path[:-1] 
  25. print path 
  26. a = {} 
  27. for root, dirs, files in os.walk(path, False): 
  28. if len(files) == 0: 
  29. a[root] = 0 
  30. else
  31. for file in files: #對(duì)文件列表進(jìn)行掃描 
  32. try
  33. fn = os.path.join(root, file) #將路徑名和文件名拼接起來(lái) 
  34. size = os.path.getsize(fn) #獲取文件名大小 
  35. if size != 0: 
  36. b = root 
  37. while(b != path): 
  38. a[b] = 1 
  39. b = b.rpartition("//")[0] #保存上一級(jí)目錄名 
  40. a[path] = 1 
  41. else:  
  42. try
  43. os.remove(fn) #刪除文件名為空的文件 
  44. a[root] = 0 
  45. except (WindowsError): 
  46. b = root 
  47. while(b != path): 
  48. a[b] = 1 
  49. b = b.rpartition("//")[0] 
  50. a[path] = 1 
  51. except WindowsError: 
  52. b = root 
  53. while(b != path): 
  54. a[b] = 1 
  55. b = b.rpartition("//")[0] 
  56. a[path] = 1 
  57. if a[root]: 
  58. break
  59. empty_dirs = [] 
  60. for i, j in a.iteritems(): 
  61. if j == 0: 
  62. print i 
  63. empty_dirs.insert(0, i) 
  64. del a 
  65. empty_dirs.sort(reverse=True)  
  66. for i in empty_dirs: 
  67. try
  68. os.rmdir(i) #刪除目錄 
  69. print "%s 刪掉了!!" % (i) 
  70. except (WindowsError): 
  71. print "%s 刪不掉!!" % (i) 
  72. if __name__ == "__main__"
  73. remove_empty_dir('f://b'

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南昌县| 富宁县| 昌平区| 河南省| 南涧| 砚山县| 红原县| 开原市| 尼木县| 永顺县| 嘉峪关市| 梁山县| 岚皋县| 社会| 三台县| 莒南县| 滨海县| 衡阳市| 腾冲县| 凯里市| 佳木斯市| 高阳县| 朝阳区| 恩平市| 汝州市| 苏尼特右旗| 达拉特旗| 吴桥县| 沈阳市| 环江| 扶沟县| 南皮县| 龙里县| 海晏县| 边坝县| 邓州市| 玉溪市| 全椒县| 瑞安市| 凤翔县| 灌南县|