如何删除文件或文件夹?
如何删除Python中的文件或文件夹?
os.remove()
将删除一个文件。
os.rmdir()
将删除一个空目录。
shutil.rmtree()
将删除一个目录及其所有内容。
使用
shutil.rmtree(path[, ignore_errors[, onerror]])
(请参阅shutil上的完整文档)和/或
os.remove
和
os.rmdir
(完整的文档在OS上 )
对于删除文件:
您可以使用unlink
或remove
。
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中,因为FileNotFoundError
是OSError
一个子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: pathlib
, pathlib2
上有较旧版本的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)