📜  查找大小大于 1gb 的文件并将其删除 (1)

📅  最后修改于: 2023-12-03 15:40:23.655000             🧑  作者: Mango

查找及删除大小大于 1GB 的文件

这篇文章将为您介绍如何使用 Python 代码来查找及删除大小大于 1GB 的文件。

查找文件

我们可以使用 Python 的 os 模块来查找文件。以下的代码将会递归查找一个指定的目录,并打印出其中所有符合条件的文件。

import os

def find_large_files(path, filesize):
    for root, dirs, files in os.walk(path):
        for file in files:
            filepath = os.path.join(root, file)
            size = os.path.getsize(filepath)
            if size > filesize:
                print(filepath)

在这个函数中,pathfilesize 是用户传入的参数,分别表示要查找的目录和所需文件大小。os.walk() 函数在每次循环迭代中返回三个值:当前目录路径、子目录列表和文件列表。我们使用 os.path.join() 函数将目录和文件名拼接成完整的文件路径。然后使用 os.path.getsize() 函数获取文件大小,并与指定的大小进行比较。如果超过指定大小,则将文件路径打印出来。

删除文件

在找到符合条件的文件之后,我们可以使用 Python 的 os 模块来删除它们。以下代码将会递归查找目录,并删除所有符合条件的文件。

import os

def delete_large_files(path, filesize):
    for root, dirs, files in os.walk(path):
        for file in files:
            filepath = os.path.join(root, file)
            size = os.path.getsize(filepath)
            if size > filesize:
                os.remove(filepath)

与查找文件类似,我们使用 os.walk() 函数来递归遍历目录并查找文件。我们使用 os.remove() 函数来删除符合条件的文件。需要注意的是,如果文件正在被其他进程打开,则无法删除它。

完整代码

下面是一个完整的 Python 脚本代码,它将使用上述的函数来查找及删除大于 1GB 的文件。

import os

def find_large_files(path, filesize):
    for root, dirs, files in os.walk(path):
        for file in files:
            filepath = os.path.join(root, file)
            size = os.path.getsize(filepath)
            if size > filesize:
                print(filepath)

def delete_large_files(path, filesize):
    for root, dirs, files in os.walk(path):
        for file in files:
            filepath = os.path.join(root, file)
            size = os.path.getsize(filepath)
            if size > filesize:
                os.remove(filepath)

path = "/path/to/folder"
filesize = 1024 * 1024 * 1024  # 1GB
find_large_files(path, filesize)

confirm = input("Are you sure to delete these files? (yes/no)")

if confirm == "yes":
    delete_large_files(path, filesize)
    print("All files have been deleted.")
else:
    print("Nothing has been deleted.")

这个脚本首先调用 find_large_files() 函数来查找所有符合条件的文件,并打印出它们的路径。然后它会提示用户确认是否删除这些文件。如果用户确认执行删除操作,则调用 delete_large_files() 函数来删除所有符合条件的文件。