协慌网

登录 贡献 社区

删除文件或文件夹

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

答案

os.remove()删除文件。

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

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

pathlib.Path.unlink()删除文件或符号链接。

pathlib.Path.rmdir()删除空目录。

用于删除文件的 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)

异常处理

#!/usr/bin/python
import os

## Get input ##
myfile= raw_input("Enter file name to delete: ")

## Try to delete the file ##
try:
    os.remove(myfile)
except OSError as e:  ## if failed, report it back to the user ##
    print ("Error: %s - %s." % (e.filename, e.strerror))

相应的输出

Enter file name to delete : demo.txt
Error: demo.txt - No such file or directory.

Enter file name to delete : rrr.txt
Error: rrr.txt - Operation not permitted.

Enter file name to delete : foo.txt

用于删除文件夹的 Python 语法

shutil.rmtree()

shutil.rmtree()示例

#!/usr/bin/python
import os
import sys
import shutil

# Get directory 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 as e:
    print ("Error: %s - %s." % (e.filename, e.strerror))

使用

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

(参见关于shutil 的完整文档)和 / 或

os.remove

os.rmdir

(关于操作系统的完整文档。)