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

新手上路,请多包涵

如何删除文件或文件夹?

原文由 Zygimantas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 636
2 个回答

删除文件的 Python 语法

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

要么

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

要么

Python 版本的 pathlib 库 >= 3.4

 file_to_rem = pathlib.Path("/tmp/<file_name>.txt")
file_to_rem.unlink()

Path.unlink(missing_ok=False)

Unlink 方法用于删除文件或符号链接。

  • 如果 missing_ok 为 false(默认值),则在路径不存在时引发 FileNotFoundError。
  • 如果 missing_ok 为真,则 FileNotFoundError 异常将被忽略(与 POSIX rm -f 命令的行为相同)。
  • 在 3.8 版更改:添加了 missing_ok 参数。

最佳实践

首先,检查文件或文件夹是否存在,然后将其删除。您可以通过两种方式实现这一目标:

  1. os.path.isfile("/path/to/file")
  2. 使用 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:
    # If it fails, inform the user.
    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 it fails, inform the user.
    print("Error: %s - %s." % (e.filename, e.strerror))

各自的输出

输入要删除的文件名:demo.txt
错误:demo.txt - 没有这样的文件或目录。

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

输入要删除的文件名: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 the tree; if it fails, throw an error using try...except.
try:
    shutil.rmtree(mydir)
except OSError as e:
    print("Error: %s - %s." % (e.filename, e.strerror))

原文由 Anand Tripathi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题