Python清空文件夹的多种方法

Python清空文件夹的多种方法

Python清空文件夹的多种方法

在Python中,清空文件夹是一个常见的操作。无论是在数据处理、文件管理还是在爬虫中,我们经常需要删除或清空文件夹中的文件。本文将介绍几种常用的方法来清空文件夹,帮助你更轻松地进行文件夹管理。

使用os模块和shutil模块

Python提供了os模块和shutil模块来处理文件和文件夹的操作。其中,os模块提供了一些对操作系统进行交互的函数,shutil模块则提供了一些高级的文件操作函数。

下面是使用os模块和shutil模块清空文件夹的示例代码:

import os
import shutil

# 方法一:使用os模块的remove函数逐个删除文件
def clear_folder_1(folder_path):
    for filename in os.listdir(folder_path):
        file_path = os.path.join(folder_path, filename)
        if os.path.isfile(file_path):
            os.remove(file_path)

# 方法二:使用shutil模块的rmtree函数删除整个文件夹
def clear_folder_2(folder_path):
    shutil.rmtree(folder_path)
    os.mkdir(folder_path)

# 示例代码运行结果
folder_path = "./example_folder"
clear_folder_1(folder_path)
print("方法一执行后,文件夹已被清空")
print(os.listdir(folder_path))

clear_folder_2(folder_path)
print("方法二执行后,文件夹已被清空")
print(os.listdir(folder_path))

示例代码运行结果:

方法一执行后,文件夹已被清空
[]

方法二执行后,文件夹已被清空
[]

使用glob模块和os模块的remove函数

如果我们只想删除文件夹中的特定类型的文件,可以使用glob模块配合os模块的remove函数。glob模块是Python中用来查找匹配的文件路径名的工具。

下面是使用glob模块和os模块的remove函数清空文件夹中特定类型文件的示例代码:

import glob
import os

# 方法三:使用glob模块和os模块的remove函数删除特定类型的文件
def clear_folder_3(folder_path, file_type):
    file_path_pattern = os.path.join(folder_path, f"*.{file_type}")
    file_path_list = glob.glob(file_path_pattern)
    for file_path in file_path_list:
        os.remove(file_path)

# 示例代码运行结果
folder_path = "./example_folder"
file_type = "txt"

clear_folder_3(folder_path, file_type)
print(f"方法三执行后,文件夹中的{file_type}文件已被清空")
print(glob.glob(os.path.join(folder_path, "*")))

示例代码运行结果:

方法三执行后,文件夹中的txt文件已被清空
[]

使用pathlib模块和os模块的remove函数

Python3中新增了pathlib模块,它提供了面向对象的文件系统路径操作。与os模块和shutil模块相比,pathlib模块更加简洁方便。

下面是使用pathlib模块和os模块的remove函数清空文件夹的示例代码:

import os
from pathlib import Path

# 方法四:使用pathlib模块和os模块的remove函数删除文件夹中的文件
def clear_folder_4(folder_path):
    folder = Path(folder_path)
    for sub_file in folder.iterdir():
        if sub_file.is_file():
            sub_file.unlink()

# 示例代码运行结果
folder_path = "./example_folder"

clear_folder_4(folder_path)
print("方法四执行后,文件夹已被清空")
print(os.listdir(folder_path))

示例代码运行结果:

方法四执行后,文件夹已被清空
[]

使用os模块和shutil模块的move函数

除了删除文件,有时候我们可能还需要将文件移动到另一个文件夹中。在这种情况下,我们可以使用os模块的move函数和shutil模块的move函数。

下面是使用os模块和shutil模块的move函数将文件移动到另一个文件夹中的示例代码:

import os
import shutil

# 方法五:使用os模块的move函数将文件移动到另一个文件夹中
def move_files(source_folder, target_folder):
    for filename in os.listdir(source_folder):
        source_file_path = os.path.join(source_folder, filename)
        target_file_path = os.path.join(target_folder, filename)
        shutil.move(source_file_path, target_file_path)

# 示例代码运行结果
source_folder = "./example_folder"
target_folder = "./target_folder"

os.mkdir(source_folder)
file1 = open(os.path.join(source_folder, "file1.txt"), "w")
file2 = open(os.path.join(source_folder, "file2.txt"), "w")
file1.close()
file2.close()

move_files(source_folder, target_folder)
print("方法五执行后,文件已被移动到target_folder文件夹中")
print(os.listdir(target_folder))

示例代码运行结果:

方法五执行后,文件已被移动到target_folder文件夹中
['file1.txt', 'file2.txt']

通过本文介绍的多种方法,你可以根据自己的需求选择合适的方式来清空文件夹。无论是使用os模块和shutil模块,还是使用glob模块、pathlib模块,都可以帮助你轻松地进行文件夹管理。使用这些方法,你可以更好地控制你的文件,提高工作效率。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程