python 删除系统中的文件(按时间,大小,扩展名)
按时间删除文件
#importingtherequiredmodules
importos
importshutil
importtime
#mainfunction
defmain():
	#initializingthecount
	deleted_folders_count=0
	deleted_files_count=0
	#specifythepath
	path="/PATH_TO_DELETE"
	#specifythedays
	days=30
	#convertingdaystoseconds
	#time.time()returnscurrenttimeinseconds
	seconds=time.time()-(days*24*60*60)
	#checkingwhetherthefileispresentinpathornot
	ifos.path.exists(path):
		
		#iteratingovereachandeveryfolderandfileinthepath
		forroot_folder,folders,filesinos.walk(path):
			#comparingthedays
			ifseconds>=get_file_or_folder_age(root_folder):
				#removingthefolder
				remove_folder(root_folder)
				deleted_folders_count+=1#incrementingcount
				#breakingafterremovingtheroot_folder
				break
			else:
				#checkingfolderfromtheroot_folder
				forfolderinfolders:
					#folderpath
					folder_path=os.path.join(root_folder,folder)
					#comparingwiththedays
					ifseconds>=get_file_or_folder_age(folder_path):
						#invokingtheremove_folderfunction
						remove_folder(folder_path)
						deleted_folders_count+=1#incrementingcount
				#checkingthecurrentdirectoryfiles
				forfileinfiles:
					#filepath
					file_path=os.path.join(root_folder,file)
					#comparingthedays
					ifseconds>=get_file_or_folder_age(file_path):
						#invokingtheremove_filefunction
						remove_file(file_path)
						deleted_files_count+=1#incrementingcount
		else:
			#ifthepathisnotadirectory
			#comparingwiththedays
			ifseconds>=get_file_or_folder_age(path):
				#invokingthefile
				remove_file(path)
				deleted_files_count+=1#incrementingcount
	else:
		#file/folderisnotfound
		print(f'"{path}"isnotfound')
		deleted_files_count+=1#incrementingcount
	print(f"Totalfoldersdeleted:{deleted_folders_count}")
	print(f"Totalfilesdeleted:{deleted_files_count}")
defremove_folder(path):
	#removingthefolder
	ifnotshutil.rmtree(path):
		#successmessage
		print(f"{path}isremovedsuccessfully")
	else:
		#failuremessage
		print(f"Unabletodeletethe{path}")
defremove_file(path):
	#removingthefile
	ifnotos.remove(path):
		#successmessage
		print(f"{path}isremovedsuccessfully")
	else:
		#failuremessage
		print(f"Unabletodeletethe{path}")
defget_file_or_folder_age(path):
	#gettingctimeofthefile/folder
	#timewillbeinseconds
	ctime=os.stat(path).st_ctime
	#returningthetime
	returnctime
if__name__=='__main__':
	main()
需要在上面的代码中调整以下两个变量
days=30 path="/PATH_TO_DELETE"
按大小删除文件
#importingtheosmodule
importos
#functionthatreturnssizeofafile
defget_file_size(path):
	#gettingfilesizeinbytes
	size=os.path.getsize(path)
	#returningthesizeofthefile
	returnsize
#functiontodeleteafile
defremove_file(path):
	#deletingthefile
	ifnotos.remove(path):
		#success
		print(f"{path}isdeletedsuccessfully")
	else:
		#error
		print(f"Unabletodeletethe{path}")
defmain():
	#specifythepath
	path="ENTER_PATH_HERE"
	#putmaxsizeoffileinMBs
	size=500
	#checkingwhetherthepathexistsornot
	ifos.path.exists(path):
		#convertingsizetobytes
		size=size*1024*1024
		#traversingthroughthesubfolders
		forroot_folder,folders,filesinos.walk(path):
			#iteratingoverthefileslist
			forfileinfiles:
				
				#gettingfilepath
				file_path=os.path.join(root_folder,file)
				#checkingthefilesize
				ifget_file_size(file_path)>=size:
					#invokingtheremove_filefunction
					remove_file(file_path)
			
		else:
			#checkingonlyifthepathisfile
			ifos.path.isfile(path):
				#pathisnotadir
				#checkingthefiledirectly
				ifget_file_size(path)>=size:
					#invokingtheremove_filefunction
					remove_file(path)
	else:
		#pathdoesn'texist
		print(f"{path}doesn'texist")
if__name__=='__main__':
	main()
调整以下两个变量。
path="ENTER_PATH_HERE" size=500
按扩展名删除文件
在某些情况下,您想按文件的扩展名类型删除文件。假设.log文件。我们可以使用该os.path.splitext(path)方法找到文件的扩展名。它返回一个元组,其中包含文件的路径和扩展名。
#importingosmodule
importos
#mainfunction
defmain():
#specifythepath
path="PATH_TO_LOOK_FOR"
#specifytheextension
extension=".log"
#checkingwhetherthepathexistornot
ifos.path.exists(path):
#checkwhetherthepathisdirectoryornot
ifos.path.isdir(path):
#iteratingthroughthesubfolders
forroot_folder,folders,filesinos.walk(path):
#checkingofthefiles
forfileinfiles:
#filepath
file_path=os.path.join(root_folder,file)
#extractingtheextensionfromthefilename
file_extension=os.path.splitext(file_path)[1]
#checkingthefile_extension
ifextension==file_extension:
#deletingthefile
ifnotos.remove(file_path):
#successmessage
print(f"{file_path}deletedsuccessfully")
else:
#failuremessage
print(f"Unabletodeletethe{file_path}")
else:
#pathisnotadirectory
print(f"{path}isnotadirectory")
else:
#pathdoen'texist
print(f"{path}doesn'texist")
if__name__=='__main__':
#invokingmainfunction
main()
不要忘记更新上面代码中的path和extension变量,以满足您的要求。
以上就是python删除系统中的文件的详细内容,更多关于python删除文件的资料请关注毛票票其它相关文章!
