[780]python删除一个文件或文件夹

  • 2020 年 3 月 28 日
  • 筆記

使用python删除一个文件或文件夹,需要使用os模块。

os.remove() 方法

os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。这时需用用os.rmdir()来删除。

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' ]

os.rmdir() 方法

os.rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。

os.unlink() 方法

os.unlink() 方法用于删除文件,如果文件是一个目录则返回一个错误。 unlink的功能和remove一样是删除一个文件,但是删除一个正在使用的文件会报错。

import os    # path是文件的路径,如果这个路径是一个文件夹,则会抛出OSError的错误,这时需用用rmdir()来删除  os.remove(path)    # path是文件夹路径,注意文件夹需要时空的才能被删除  os.rmdir(path)    # unlink的功能和remove一样是删除一个文件,但是删除一个正在使用的文件会报错。  os.unlink('F:新建文本文档.txt')  

例子:

import os  path = 'F:/新建文本文档.txt'  # 文件路径  if os.path.exists(path):  # 如果文件存在      # 删除文件,可使用以下两种方法。      os.remove(path)      #os.unlink(path)  else:      print('no such file:%s'%my_file)  # 则返回文件不存在

os.removedirs() 方法

os.removedirs() 方法用于递归删除目录。像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。

import os    # 递归地删除目录。如果子目录成功被删除,则将会成功删除父目录,子目录没成功删除,将抛异常。  os.removedirs(path)  

递归删除目录和文件的方法:

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))

另一种方法

import shutil  shutil.rmtree()

如果想把一个文件从一个文件夹移动到另一个文件夹,并同时重命名,用shutil也很简单:

shutil.move('原文件夹/原文件名','目标文件夹/目标文件名')