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内置函数的用法实例教程
Sep 08 Python
如何解决django配置settings时遇到Could not import settings 'conf.local'
Nov 18 Python
Python计算回文数的方法
Mar 11 Python
python Crypto模块的安装与使用方法
Dec 21 Python
Flask 让jsonify返回的json串支持中文显示的方法
Mar 26 Python
python通过Windows下远程控制Linux系统
Jun 20 Python
Python虚拟环境的原理及使用详解
Jul 02 Python
python+pygame实现坦克大战
Sep 10 Python
简单了解Python读取大文件代码实例
Dec 18 Python
Python如何定义接口和抽象类
Jul 28 Python
Django Form常用功能及代码示例
Oct 13 Python
详解Python如何批量采集京东商品数据流程
Jan 22 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的面试题集,附我的答案和分析(一)
2006/11/19 PHP
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
深入浅析安装PhpStorm并激活的步骤详解
2020/09/17 PHP
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
Python的time模块中的常用方法整理
2015/06/18 Python
Python爬取附近餐馆信息代码示例
2017/12/09 Python
Python切片索引用法示例
2018/05/15 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
Python 实现集合Set的示例
2020/12/21 Python
HTML5 拖放功能实现代码
2016/07/14 HTML / CSS
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
二年级体育教学反思
2014/01/15 职场文书
暑期教师培训方案
2014/06/07 职场文书
股东授权委托书范文
2014/09/13 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP