📅  最后修改于: 2023-12-03 15:40:23.655000             🧑  作者: Mango
这篇文章将为您介绍如何使用 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)
在这个函数中,path
和 filesize
是用户传入的参数,分别表示要查找的目录和所需文件大小。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()
函数来删除所有符合条件的文件。