python 删除系统中的文件(按时间,大小,扩展名)


Posted in Python onNovember 19, 2020

按时间删除文件

# 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变量,以满足您的要求。

以上就是python 删除系统中的文件的详细内容,更多关于python 删除文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python 查找文件夹下所有文件 实现代码
Jul 01 Python
Python数据处理numpy.median的实例讲解
Apr 02 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
Python之inspect模块实现获取加载模块路径的方法
Oct 16 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
Apr 03 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
Python实现进度条和时间预估的示例代码
Jun 02 Python
Python自动发送和收取邮件的方法
Aug 12 Python
Python os库常用操作代码汇总
Nov 03 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
pytest进阶教程之fixture函数详解
Mar 29 Python
Python中glob库实现文件名的匹配
Jun 18 Python
Python并发爬虫常用实现方法解析
Nov 19 #Python
python实现文件分片上传的接口自动化
Nov 19 #Python
Python类class参数self原理解析
Nov 19 #Python
Python爬虫如何破解JS加密的Cookie
Nov 19 #Python
python制作一个简单的gui 数据库查询界面
Nov 19 #Python
解决python3中os.popen()出错的问题
Nov 19 #Python
Python中return函数返回值实例用法
Nov 19 #Python
You might like
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
php 购物车的例子
2009/05/04 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
JS 常用校验函数
2009/03/26 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
自学python的建议和周期预算
2019/01/30 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
Django stark组件使用及原理详解
2019/08/22 Python
Python单链表原理与实现方法详解
2020/02/22 Python
Python中bisect的用法及示例详解
2020/07/20 Python
企业为何需要商业计划书
2013/12/26 职场文书
软件项目实施计划书
2014/05/02 职场文书
政治学求职信
2014/06/03 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
推荐信范文大全
2015/03/27 职场文书
教学质量月活动总结
2015/05/11 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书