开发人员将 Python 中的文件用于各种目的。开发人员处理完文件后,知道如何删除它很重要。例如,在大型程序中,开发人员需要创建文件来存储数据,但在程序执行后不需要它们。此时删除文件是一个好主意,在本教程中,我们将讨论在 Python 中删除或删除文件的不同方法。

现在,我们将讨论使用 os.remove() 和 pathlib 模块在 Python 中删除文件的各种方法。我们还将讨论如何在 Python 中删除空目录和非空目录。

目录

  • 使用 os.remove() 在 Python 中删除文件
  • 在 Python 中使用 pathlib 模块删除文件
  • 删除空目录
  • 删除非空目录
  • 总结

使用 os.remove() 在 Python 中删除文件

Python 中的 OS 模块提供了与操作系统交互的功能。此标准实用程序模块提供了一种使用操作系统相关功能的可移植方式。该模块可以删除文件或文件路径,但不能删除目录。如果指定的路径是目录,则模块将引发 OSError。

语法:

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

案例 1:删除文件

输入:

import os

file = 'application.ini'
location = "/home/linuxmi/www.linuxmi.com/linuxmi/firefox"
path = os.path.join(location, file)
os.remove(path)

print ("文件已删除")

输出:

文件已删除 

在上面的代码片段中,我们首先指定要删除的文件及其位置。然后,加入后,我们使用 os.remove() 操作将其删除。

案例2:指定路径为目录

输入:

import os

path = "/home/linuxmi/www.linuxmi.com/linuxmi/firefox/defaults"

os.remove(path)
print ("文件已删除")

输出:

Traceback (most recent call last):
  File "linuxmi.py", line 5, in <module>
    os.remove(path)
IsADirectoryError: [Errno 21] Is a directory: '/home/linuxmi/www.linuxmi.com/linuxmi/firefox/defaults'

在这里,我们不需要使用“join”操作,因为我们直接指定了确切的位置。确保在使用 os.remove() 函数之前导入 OS 库。

在 Python 中使用 pathlib 模块删除文件

pathlib 模块对于在 Python 3.4 或更高版本中删除或删除文件非常有用。它类似于 os.remove() 并且必须首先创建一个路径对象。

输入:

import pathlib
p_obj = Path(".")
type(p_obj)
file = pathlib.Path("file_1/file.txt")
file.unlink()

创建 Path 类的实例时,将根据您正在使用的机器返回 WindowsPath 或 PosixPath。unlink()  函数的作用是删除文件或符号链接。

删除空目录

上述两种方法不能用于删除文件夹。OS 模块中的 os.rmdir() 函数可以删除 Python 中的空目录。

输入:

import os
directory = "/home/linuxmi/www.linuxmi.com/linuxmi/bin"
os.rmdir('Debug')

print ("目录被删除。")

输出:

目录被删除。 

os.rmdir() 函数只能用于删除一个空目录。如果指定包含文件的文件夹,将返回以下错误。

输入:

import os

directory = "/home/User/Documents/abcdef/ghi"

os.rmdir('directory')

输出:

Permission denied: '/home/User/Documents/abcdef/ghi' Directory 'ghi' can not be removed

删除非空目录

您可以使用高级文件操作模块shutil 来删除文件或文件集合。您可以以与 os.rmdir() 函数相同的方式使用此模块,但在这里您也可以删除非空目录。目录中的所有内容也会被删除。

输入:

import shutil
path = /home/User/Documents/abcdef
shutil.rmtree('path')

print ("目录中的所有文件都将随目录一起删除")

输出:

目录中的所有文件都将随目录一起删除

请记住,您不能使用 shutil.rmtree() 函数删除单个文件。要删除单个文件,您可以使用 os.remove() 函数和上面说明的 pathlib 模块。

总结

在 Python 中,删除文件是一种非常常见的操作。os.remove() 函数和 pathlib 模块可以删除单个文件。而 os.rmdir() 函数删除一个空目录,而 shutil 模块删除 Python 中的非空目录。

发表评论