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基于twisted实现简单的web服务器
Sep 29 Python
Python中logging模块的用法实例
Sep 29 Python
Python装饰器decorator用法实例
Nov 10 Python
Python线程的两种编程方式
Apr 14 Python
Python2.x利用commands模块执行Linux shell命令
Mar 11 Python
python中reader的next用法
Jul 24 Python
Python使用一行代码获取上个月是几月
Aug 30 Python
python try except返回异常的信息字符串代码实例
Aug 15 Python
Python3.7实现验证码登录方式代码实例
Feb 14 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
Apr 16 Python
Python分类测试代码实例汇总
Jul 23 Python
总结Pyinstaller打包的高级用法
Jun 28 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
PHP include任意文件或URL介绍
2014/04/29 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
菜鸟javascript基础整理1
2010/12/06 Javascript
jquery插件validate验证的小例子
2013/05/08 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
2014/03/28 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
canvas实现钟表效果
2017/02/13 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
javascript trie前缀树的示例
2018/01/29 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
Python回调函数用法实例详解
2015/07/02 Python
利用python画一颗心的方法示例
2017/01/31 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
Django组件content-type使用方法详解
2019/07/19 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
python模拟实现斗地主发牌
2020/01/07 Python
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
创业计划书——互联网商机
2014/01/12 职场文书
浙江文明网签名寄语
2014/01/18 职场文书
关于廉洁的广播稿
2014/01/30 职场文书
数学系毕业生求职信
2014/05/29 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
Python list列表删除元素的4种方法
2021/11/01 Python
php去除deprecated的实例方法
2021/11/17 PHP
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技