python 刪除文件、清空目錄的方法總

Python os.remove() 方法

os.remove() 方法用於刪除指定路徑的文件。如果指定的路徑是一個目錄,將拋出OSError。

在Unix, Windows中有效

以下實例演示了 remove() 方法的使用:

#!/usr/bin/python  # -*- coding: UTF-8 -*-    import os, sys    # 列出目錄  print "目錄為: %s" %os.listdir(os.getcwd())    # 移除  os.remove("aa.txt")    # 移除後列出目錄  print "移除後 : %s" %os.listdir(os.getcwd())

執行以上程式輸出結果為:

目錄為:  [ 'a1.txt','aa.txt','resume.doc' ]  移除後 :  [ 'a1.txt','resume.doc' ]

Python os.removedirs() 方法

os.removedirs() 方法用於遞歸刪除目錄。像rmdir(), 如果子文件夾成功刪除, removedirs()才嘗試它們的父文件夾,直到拋出一個error(它基本上被忽略,因為它一般意味著你文件夾不為空)。

以下實例演示了 removedirs() 方法的使用:

#!/usr/bin/python  # -*- coding: UTF-8 -*-    import os, sys    # 列出目錄  print "目錄為: %s" %os.listdir(os.getcwd())    # 移除  os.removedirs("/test")    # 列出移除後的目錄  print "移除後目錄為:" %os.listdir(os.getcwd())

執行以上程式輸出結果為:

目錄為:  [  'a1.txt','resume.doc','a3.py','test' ]  移除後目錄為:  [  'a1.txt','resume.doc','a3.py' ]

Python os.rmdir() 方法

os.rmdir() 方法用於刪除指定路徑的目錄。僅當這文件夾是空的才可以, 否則, 拋出OSError。

以下實例演示了 rmdir() 方法的使用:

#!/usr/bin/python  # -*- coding: UTF-8 -*-    import os, sys    # 列出目錄  print "目錄為: %s"%os.listdir(os.getcwd())    # 刪除路徑  os.rmdir("mydir")    # 列出重命名後的目錄  print "目錄為: %s" %os.listdir(os.getcwd())

執行以上程式輸出結果為:

目錄為:  [  'a1.txt','resume.doc','a3.py','mydir' ]  目錄為:  [  'a1.txt','resume.doc','a3.py' ]

Python os.unlink() 方法

os.unlink() 方法用於刪除文件,如果文件是一個目錄則返回一個錯誤。

以下實例演示了 unlink() 方法的使用:

#!/usr/bin/python  # -*- coding: UTF-8 -*-    import os, sys    # 列出目錄  print "目錄為: %s" %os.listdir(os.getcwd())    os.unlink("aa.txt")    # 刪除後的目錄  print "刪除後的目錄為 : %s" %os.listdir(os.getcwd())

執行以上程式輸出結果為:

目錄為:  [ 'a1.txt','aa.txt','resume.doc']  刪除後的目錄為 :  [ 'a1.txt','resume.doc' ]

其他的總結

1、remove()unlink() 的功能是一樣的

在Windows系統中,刪除一個正在使用的文件,將拋出異常。在Unix中,目錄表中的記錄被刪除,但文件的存儲還在。

#使用os.unlink()和os.remove()來刪除文件  #!/user/local/bin/python2.7  # -*- coding:utf-8 -*-  import os  my_file = 'D:/text.txt'  if os.path.exists(my_file):      #刪除文件,可使用以下兩種方法。      os.remove(my_file)      #os.unlink(my_file)  else:      print 'no such file:%s'%my_file

2、遞歸刪除目錄和文件的方法(類似DOS命令DeleteTree): 複製程式碼 程式碼如下:

import os  for root, dirs, files in os.walk(top, topdown=False):      for name in files:          os.remove(os.path.join(root, name))      for name in dirs:          os.rmdir(os.path.join(root, name))

3、Python清空指定文件夾下所有文件的方法: 這個需求很簡單:需要在執行某些程式碼前清空指定的文件夾,如果直接用os.remove(),可能出現因文件夾中文件被佔用而無法刪除,解決方法也很簡單,先強制刪除文件夾,再重新建同名文件夾即可:

import shutil  shutil.rmtree('要清空的文件夾名')  os.mkdir('要清空的文件夾名')  

註:可參考這裡對shutil模組的介紹:http://blog.csdn.net/imzoer/article/details/8733396

如果想把一個文件從一個文件夾移動到另一個文件夾,並同時重命名,用shutil也很簡單:

shutil.move('原文件夾/原文件名','目標文件夾/目標文件名') 

參考文獻: 1、https://blog.csdn.net/muwinter/article/details/77196261 2018.5.25 2、https://blog.csdn.net/qysh123/article/details/51923606 2018.5.25 3、http://www.runoob.com/python/os-unlink.html 2018.5.25 4、http://www.runoob.com/python/os-rmdir.html 2018.5.25 5、http://www.runoob.com/python/os-removedirs.html 2018.5.25 6、http://www.runoob.com/python/os-remove.html 2018.5.25