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对指定目录下文件进行批量重命名的方法
Apr 18 Python
python使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
在Django的模型中添加自定义方法的示例
Jul 21 Python
python 实现批量xls文件转csv文件的方法
Oct 23 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
python实现简单flappy bird
Dec 24 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
详解python 条件语句和while循环的实例代码
Dec 28 Python
解决virtualenv -p python3 venv报错的问题
Feb 05 Python
详解Flask开发技巧之异常处理
Jun 15 Python
python可视化大屏库big_screen示例详解
Nov 23 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图片加中文水印实现代码分享
2012/10/31 PHP
php权重计算方法代码分享
2014/01/09 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
深入了解Django View(视图系统)
2019/07/23 Python
python定义类self用法实例解析
2020/01/22 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
Python bytes string相互转换过程解析
2020/03/05 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
仓库班组长岗位职责
2013/12/12 职场文书
雪山饭庄的创业计划书范文
2014/01/18 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
项目施工员岗位职责
2014/03/09 职场文书
优秀班组申报材料
2014/12/25 职场文书
工地材料员岗位职责
2015/04/11 职场文书
微信小程序基础教程之echart的使用
2021/06/01 Javascript
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫