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运算符重载用法实例分析
Jun 01 Python
Python利用turtle库绘制彩虹代码示例
Dec 20 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
django缓存配置的几种方法详解
Jul 16 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
python看某个模块的版本方法
Oct 16 Python
Django打印出在数据库中执行的语句问题
Jul 25 Python
对django中foreignkey的简单使用详解
Jul 28 Python
python 解决flask 图片在线浏览或者直接下载的问题
Jan 09 Python
python实现马丁策略回测3000只股票的实例代码
Jan 22 Python
python实现简单聊天功能
Jul 07 Python
Python中with上下文管理协议的作用及用法
Mar 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
极典R601SW收音机
2021/03/02 无线电
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
Yii框架登录流程分析
2014/12/03 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
初步探究Python程序的执行原理
2015/04/11 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
家长给小学生的评语
2014/01/30 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
网络管理专业求职信
2014/03/15 职场文书
医学求职信
2014/05/28 职场文书
社区戒毒工作方案
2014/06/04 职场文书
助学贷款贫困证明
2014/09/23 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书
Python函数中apply、map、applymap的区别
2021/11/27 Python
Python中with上下文管理协议的作用及用法
2022/03/18 Python