网络编程
位置:首页>> 网络编程>> Python编程>> python 删除系统中的文件(按时间,大小,扩展名)

python 删除系统中的文件(按时间,大小,扩展名)

作者:Hafeezul Kareem Shaik  发布时间:2022-11-02 23:51:39 

标签:python,删除,文件

按时间删除文件


# 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变量,以满足您的要求。

来源:https://geekflare.com/python-delete-files/

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com