如何在Python中删除文件和目录
时间:2020-01-09 10:44:18 来源:igfitidea点击:
在本教程中,我们将介绍如何在Python中删除(或者删除)文件或者目录,甚至递归删除目录。在Python中,内置模块中有多种功能和方法可用于此目的。
删除单个文件– os.remove(),os.unlink(),pathlib.Path.unlink()
删除一个空目录– os.rmdir(),pathlib.Path.rmdir()
删除非空目录– shutil.rmtree()
使用os.remove()在Python中删除单个文件
Python中的os模块具有函数remove(),可用于删除文件。将要删除的文件路径作为参数传递给函数。如果path是目录,则会引发OSError,因此最好在删除之前检查它是否是文件。
import os def delete_file(file_path, dir_path): full_path = os.path.join(dir_path, file_path) if os.path.isfile(full_path): os.remove(full_path) else: print('File %s not found' % full_path)
使用os.unlink()在Python中删除单个文件
该函数在语义上与remove()相同。
import os def delete_file(file_path, dir_path): full_path = os.path.join(dir_path, file_path) if os.path.isfile(full_path): os.unlink(full_path) else: print('File %s not found' % full_path)
使用pathlib.Path.unlink()在Python中删除单个文件
从Python 3.4开始,pathlib模块可用。该模块提供了一种面向对象的方式来访问文件系统路径。要删除文件,请创建一个代表文件路径的Path对象,然后对该对象调用unlink()方法。
from pathlib import Path def delete_file(file_path): path = Path(file_path) if path.is_file(): path.unlink() else: print('File %s not found' % path) #call function delete_file("F:/theitroad/Python/test.txt")
使用os.rmdir()删除一个空目录
在Python os模块中,有一个函数rmdir()可用于删除目录。仅在目录为空时有效,否则,将引发OSError。
def delete_dir(dir_path): if os.path.isdir(dir_path): os.rmdir(dir_path) else: print('Directory %s not found' % dir_path)
使用pathlib.Path.rmdir()删除一个空目录
要删除目录,请创建一个代表目录路径的Path对象,然后在该对象上调用rmdir()方法。该目录必须为空才能删除。
def delete_dir(dir_path): path = Path(dir_path) if path.is_dir(): path.rmdir() else: print('Directory %s not found' % path)
使用shutil.rmtree()删除非空目录
为了删除整个目录树,可以使用shutil.rmtree()。此功能将删除所有子目录,并以递归方式遍历目录树。
shutil.rmtree()函数的语法如下:
shutil.rmtree(路径,ignore_errors = False,onerror =无)
有两个具有默认值的参数。如果ignore_errors为true,则删除失败导致的错误将被忽略。如果调用了由onerror指定的false或者省略的处理程序来处理此类错误,则如果省略了该处理程序,则会引发异常。
def delete_dir(dir_path): if os.path.isdir(dir_path): shutil.rmtree(dir_path) else: print('Directory %s not found' % dir_path)