【问题标题】:Delete all but newest folder in Python [duplicate]删除Python中除最新文件夹之外的所有文件夹[重复]
【发布时间】:2017-07-01 00:10:58
【问题描述】:

我无法想出一种安全删除所提供根目录中除最近创建或更新的文件夹之外的所有文件夹的方法。我有这个基本的结构设置,但我不知道如何从这里开始:

for root, folders, files in os.walk(output_folder):
    for folder in folders:

【问题讨论】:

  • 这个问题不是点重复!链接的问题是关于删除早于 X 天的文件,这个问题是关于删除除最新的文件夹之外的所有文件夹(无论日期如何!)

标签: python python-3.x directory


【解决方案1】:

你可以像这样找到最新的文件夹

import os, shutil

newest_folder = max(folders, key=os.path.getmtime)

for fname in folders:
    if fname != newest_folder:
        shutil.rmtree(folder)

根据您的具体要求,您可能希望使用getctime 而不是getmtime

【讨论】:

    【解决方案2】:

    这可能对你有用:-

    import os
    import datetime as dt
    import shutil
    
    
    now = dt.datetime.now()
    ago = now-dt.timedelta(minutes=30) #Mention the required time
    
    for root, dirs,files in os.walk('/home/piyush/pppptest'): #put required directory path
        for fname in files:
            path = os.path.join(root, fname)
            st = os.stat(path)    
            mtime = dt.datetime.fromtimestamp(st.st_mtime) #Gives you the modified time of file
            # print mtime
            if mtime > ago:
                print('%s modified %s'%(path, mtime)) #You can check path and modified and work on it as per your requirement
                shutil.rmtree('path') #You can delete it.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 2021-11-20
      相关资源
      最近更新 更多