如何删除文件或文件夹?

如何删除Python中的文件或文件夹?

os.remove()将删除一个文件。

os.rmdir()将删除一个空目录。

shutil.rmtree()将删除一个目录及其所有内容。

使用

 shutil.rmtree(path[, ignore_errors[, onerror]]) 

(请参阅shutil上的完整文档)和/或

 os.remove 

 os.rmdir 

(完整的文档在OS上 )

对于删除文件:

您可以使用unlinkremove

 os.unlink(path, *, dir_fd=None) 

要么

 os.remove(path, *, dir_fd=None) 

这个function删除(删除)文件path。 如果path是一个目录,则引发OSError

在Python 2中,如果path不存在,则会引发带[Errno 2]( ENOENT )的OSError 。 在Python 3中,引发了[Errno 2]( ENOENT )的FileNotFoundError 。 在Python 3中,因为FileNotFoundErrorOSError一个子OSError ,捕获后者会捕获前者。

对于删除文件夹:

 os.rmdir(path, *, dir_fd=None) 

rmdir删除(删除)目录path。 仅当目录为空时才起作用,否则引发OSError 。 为了移除整个目录树,可以使用shutil.rmtree()

 shutil.rmtree(path, ignore_errors=False, onerror=None) 

shutil.rmtree删除整个目录树。 path必须指向一个目录(但不是指向目录的符号链接)。

如果ignore_errors为true,那么由于清除失败而导致的错误将被忽略,如果为false或省略,则通过调用由onerror指定的处理程序来处理这些错误,或者如果省略,则会引发exception。

也可以看看:

 os.removedirs(name) 

os.removedirs(name)recursion地删除目录。 像rmdir()一样工作,除了如果叶目录被成功删除,removedirs()会尝试连续删除path中提到的每个父目录,直到引发错误(忽略,因为它通常意味着父目录不是空的)。

例如,os.removedirs('foo / bar / baz')将首先删除目录'foo / bar / baz',然后删除'foo / bar'和'foo'(如果它们是空的)。

Python语法删除文件

 import os os.remove("/tmp/<file_name>.txt") 

要么

 import os os.unlink("/tmp/<file_name>.txt") 

最佳实践:
1.首先检查文件或文件夹是否退出,然后只删除该文件。 这可以通过两种方式来实现:
一个。 os.path.isfile("/path/to/file")
湾 使用exception handling.

os.path.isfile 例子

 #!/usr/bin/python import os myfile="/tmp/foo.txt" ## if file exists, delete it ## if os.path.isfile(myfile): os.remove(myfile) else: ## Show an error ## print("Error: %s file not found" % myfile) 

exception处理

 #!/usr/bin/python import os ## get input ## myfile= raw_input("Enter file name to delete : ") ## try to delete file ## try: os.remove(myfile) except OSError, e: ## if failed, report it back to the user ## print ("Error: %s - %s." % (e.filename,e.strerror)) 

相对输出

input文件名称以删除:demo.txt
错误:demo.txt  - 没有这样的文件或目录。

input要删除的文件名:rrr.txt
错误:rrr.txt  - 操作不允许。

input文件名称以删除:foo.txt 

Python语法删除一个文件夹

 shutil.rmtree() 

示例shutil.rmtree()

 #!/usr/bin/python import os import sys import shutil # Get dir name mydir= raw_input("Enter directory name : ") ## Try to remove tree; if failed show an error using try...except on screen try: shutil.rmtree(mydir) except OSError, e: print ("Error: %s - %s." % (e.filename,e.strerror)) 

为你们创build一个function。

 def remove(path): """ param <path> could either be relative or absolute. """ if os.path.isfile(path): os.remove(path) # remove the file elif os.path.isdir(path): shutil.rmtree(path) # remove dir and all contains else: raise ValueError("file {} is not a file or dir.".format(path)) 

您可以使用内置的pathlib模块(需要Python 3.4+,但PyPI: pathlibpathlib2上有较旧版本的backports)。

要删除一个文件有unlink方法:

 import pathlib path = pathlib.Path(name_of_file) path.unlink() 

或者rmdir方法删除一个文件夹:

 import pathlib path = pathlib.Path(name_of_folder) path.rmdir() 
 import os folder = '/Path/to/yourDir/' fileList = os.listdir(folder) for f in fileList: filePath = folder + '/'+f if os.path.isfile(filePath): os.remove(filePath) elif os.path.isdir(filePath): newFileList = os.listdir(filePath) for f1 in newFileList: insideFilePath = filePath + '/' + f1 if os.path.isfile(insideFilePath): os.remove(insideFilePath)