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基于Tkinter库实现简单文本编辑器实例
May 05 Python
Python中的hypot()方法使用简介
May 18 Python
在Django的session中使用User对象的方法
Jul 23 Python
Python学习之用pygal画世界地图实例
Dec 07 Python
Python对切片命名的实现方法
Oct 16 Python
详解python-图像处理(映射变换)
Mar 22 Python
详解Python学习之安装pandas
Apr 16 Python
Pandas删除数据的几种情况(小结)
Jun 21 Python
python实现可变变量名方法详解
Jul 01 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 Python
Python 阶乘详解
Oct 05 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
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
基于MySQL体系结构的分析
2013/05/02 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
php 常用算法和时间复杂度
2013/07/01 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
jquery 滚动条事件简单实例
2013/07/12 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
微信小程序实现时间预约功能
2018/11/27 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
2019/05/16 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
Python常用内置函数总结
2015/02/08 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
在Pycharm中自动添加时间日期作者等信息的方法
2019/01/16 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
为什么UNION ALL比UNION快
2016/03/17 面试题
个人租房协议书
2014/04/09 职场文书
节能减耗标语
2014/06/21 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
中学语文教学反思
2016/02/16 职场文书
Django Paginator分页器的使用示例
2021/06/23 Python
Java 数据结构七大排序使用分析
2022/04/02 Java/Android