python 删除系统中的文件(按时间,大小,扩展名)
作者:Hafeezul Kareem Shaik 发布时间:2022-11-02 23:51:39
标签:python,删除,文件
按时间删除文件
# importing the required modules
import os
import shutil
import time
# main function
def main():
# initializing the count
deleted_folders_count = 0
deleted_files_count = 0
# specify the path
path = "/PATH_TO_DELETE"
# specify the days
days = 30
# converting days to seconds
# time.time() returns current time in seconds
seconds = time.time() - (days * 24 * 60 * 60)
# checking whether the file is present in path or not
if os.path.exists(path):
# iterating over each and every folder and file in the path
for root_folder, folders, files in os.walk(path):
# comparing the days
if seconds >= get_file_or_folder_age(root_folder):
# removing the folder
remove_folder(root_folder)
deleted_folders_count += 1 # incrementing count
# breaking after removing the root_folder
break
else:
# checking folder from the root_folder
for folder in folders:
# folder path
folder_path = os.path.join(root_folder, folder)
# comparing with the days
if seconds >= get_file_or_folder_age(folder_path):
# invoking the remove_folder function
remove_folder(folder_path)
deleted_folders_count += 1 # incrementing count
# checking the current directory files
for file in files:
# file path
file_path = os.path.join(root_folder, file)
# comparing the days
if seconds >= get_file_or_folder_age(file_path):
# invoking the remove_file function
remove_file(file_path)
deleted_files_count += 1 # incrementing count
else:
# if the path is not a directory
# comparing with the days
if seconds >= get_file_or_folder_age(path):
# invoking the file
remove_file(path)
deleted_files_count += 1 # incrementing count
else:
# file/folder is not found
print(f'"{path}" is not found')
deleted_files_count += 1 # incrementing count
print(f"Total folders deleted: {deleted_folders_count}")
print(f"Total files deleted: {deleted_files_count}")
def remove_folder(path):
# removing the folder
if not shutil.rmtree(path):
# success message
print(f"{path} is removed successfully")
else:
# failure message
print(f"Unable to delete the {path}")
def remove_file(path):
# removing the file
if not os.remove(path):
# success message
print(f"{path} is removed successfully")
else:
# failure message
print(f"Unable to delete the {path}")
def get_file_or_folder_age(path):
# getting ctime of the file/folder
# time will be in seconds
ctime = os.stat(path).st_ctime
# returning the time
return ctime
if __name__ == '__main__':
main()
需要在上面的代码中调整以下两个变量
days = 30
path = "/PATH_TO_DELETE"
按大小删除文件
# importing the os module
import os
# function that returns size of a file
def get_file_size(path):
# getting file size in bytes
size = os.path.getsize(path)
# returning the size of the file
return size
# function to delete a file
def remove_file(path):
# deleting the file
if not os.remove(path):
# success
print(f"{path} is deleted successfully")
else:
# error
print(f"Unable to delete the {path}")
def main():
# specify the path
path = "ENTER_PATH_HERE"
# put max size of file in MBs
size = 500
# checking whether the path exists or not
if os.path.exists(path):
# converting size to bytes
size = size * 1024 * 1024
# traversing through the subfolders
for root_folder, folders, files in os.walk(path):
# iterating over the files list
for file in files:
# getting file path
file_path = os.path.join(root_folder, file)
# checking the file size
if get_file_size(file_path) >= size:
# invoking the remove_file function
remove_file(file_path)
else:
# checking only if the path is file
if os.path.isfile(path):
# path is not a dir
# checking the file directly
if get_file_size(path) >= size:
# invoking the remove_file function
remove_file(path)
else:
# path doesn't exist
print(f"{path} doesn't exist")
if __name__ == '__main__':
main()
调整以下两个变量。
path = "ENTER_PATH_HERE"
size = 500
按扩展名删除文件
在某些情况下,您想按文件的扩展名类型删除文件。假设.log文件。我们可以使用该os.path.splitext(path)方法找到文件的扩展名。它返回一个元组,其中包含文件的路径和扩展名。
# importing os module
import os
# main function
def main():
# specify the path
path = "PATH_TO_LOOK_FOR"
# specify the extension
extension = ".log"
# checking whether the path exist or not
if os.path.exists(path):
# check whether the path is directory or not
if os.path.isdir(path):
# iterating through the subfolders
for root_folder, folders, files in os.walk(path):
# checking of the files
for file in files:
# file path
file_path = os.path.join(root_folder, file)
# extracting the extension from the filename
file_extension = os.path.splitext(file_path)[1]
# checking the file_extension
if extension == file_extension:
# deleting the file
if not os.remove(file_path):
# success message
print(f"{file_path} deleted successfully")
else:
# failure message
print(f"Unable to delete the {file_path}")
else:
# path is not a directory
print(f"{path} is not a directory")
else:
# path doen't exist
print(f"{path} doesn't exist")
if __name__ == '__main__':
# invoking main function
main()
不要忘记更新上面代码中的path和extension变量,以满足您的要求。
来源:https://geekflare.com/python-delete-files/


猜你喜欢
- java的简单介绍Java是一种通用的面向对象编程语言,旨在生成可在任何地方使用相同代码的代码。这种编程语言是基于类的,面向对象的和人类可读
- 一、excel进入密码加密算法cipher Algorithm=“AES”AES加密算法的详细介绍与
- 我们经常见到很多网站留言系统的显示访客的IP地址都是隐藏了一部分,以达到隐蔽访客真实地理位置的功能。如:111.222.333.*,当然在系
- 在我们处理文件的时候,会遇到这样的一种场景,我们需要对某个文件进行操作,然后生成与原文件名相同的文件(只是文件格式改变)。那么这个时候就可以
- MJML是一种现代的电子邮件工具,使开发人员可以在所有设备和邮件客户端上创建美观、响应迅速的出色电子邮件。这种标记语言是为了减少编写响应式电
- 文件的一般操作步骤打开文件或创建新文件:使用相应的编程语言和对应的库或模块打开一个已经存在的文件或者创建新文件。读取文件内容或向文件中写入内
- 说明一直想做一个基于VUE的项目,但是因为项目往往要涉及到后端的知识(不会后端真的苦),所以就没有一直真正的动手去做一个项目。直到发现Git
- 废话不多说,直接上代码吧!import threadingimport osclass Find(threading.Thread): #搜
- 一、reversereverse()是python中列表的一个内置方法(在字典、字符串和元组中没有这个内置方法),用于列表中数据的反转例子:
- 对象Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值)组成。1. 标识用于唯一标识对象,
- 近期因工作需要,需对几十万条商品和订单数据进行初步的数据分析,本来尝试过用Excel,但是数据量一旦超过10万条,Excel和电脑的性能瓶颈
- 笔者之前用R开发评分卡时,需要进行分箱计算woe及iv值,采用的R包是smbinning,它可以自动进行分箱。近期换用python开发, 也
- python中ord函数Python ord()函数 (Python ord() function)ord() function is a
- 本文实例讲述了php中数字、字符与对象判断函数用法。分享给大家供大家参考。具体分析如下:在php判断数字,字符,对象,数组等包括有参见 is
- 在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,这时就需要主机切换到新窗
- 导言就计算机科学而言,caching就是将所需要的数据或信息的备份放在某个地方,便于快速访问的这样一个过程。以数据处理(data-drive
- <!--#include file="config.asp" -->&nbs
- 如下所示:#! usr/bin/python#coding=utf-8 import numpy as npimport matplotli
- 很佩服国外一些前端开发人员对待学问的研究精神,他们很善于总结发现。看到一篇关于安全字体List of Web Safe Fonts的文章,里
- 目录主要解决的问题一、后端返回的数据,提交到后端的数据格式如下:二、vue前端代码如下:总结主要解决的问题1、vue在循环的时候需要动态绑定