VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • python 删除系统中的文件(按时间,大小,扩展名)

这篇文章主要介绍了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变量,以满足您的要求。

以上就是python 删除系统中的文件的详细内容,更多关于python 删除文件的资料请关注其它相关文章!

原文链接:https://geekflare.com/python-delete-files/


相关教程