Delete files that are older than 7 days

后端 未结 3 549
慢半拍i
慢半拍i 2021-01-05 11:04

I have seen some posts to delete all the files (not folders) in a specific folder, but I simply don\'t understand them.

I need to use a UNC path and delete all the f

相关标签:
3条回答
  • 2021-01-05 11:40

    This code removes files in the current working directory that were created >= 7 days ago. Run at your own risk.

    import os
    import time
    
    current_time = time.time()
    
    for f in os.listdir():
        creation_time = os.path.getctime(f)
        if (current_time - creation_time) // (24 * 3600) >= 7:
            os.unlink(f)
            print('{} removed'.format(f))
    
    0 讨论(0)
  • 2021-01-05 11:40

    Another version:

    import os
    import time
    import sys
    
    if len(sys.argv) != 2:
        print "usage", sys.argv[0], " <dir>"
        sys.exit(1)
    
    workdir = sys.argv[1]
    
    now = time.time()
    old = now - 7 * 24 * 60 * 60
    
    for f in os.listdir(workdir):
        path = os.path.join(workdir, f)
        if os.path.isfile(path):
            stat = os.stat(path)
            if stat.st_ctime < old:
                print "removing: ", path
                # os.remove(path) # uncomment when you will sure :)
    
    0 讨论(0)
  • 2021-01-05 11:54

    Based in Vadim solution a more flexible approach Remember os.unlink(fileWithPath) removes everything in that folder older than X days, so be careful.

    ############ DELETE OLDER THAN X ############
    current_time = time.time()
    daysToDelete = 7
    directory = '/absolute/path/to/folder/'
    
    for dirpath,_,filenames in os.walk(directory):
        for f in filenames:
            fileWithPath = os.path.abspath(os.path.join(dirpath, f))
            creation_time = os.path.getctime(fileWithPath)
            print("file available:",fileWithPath)
            if (current_time - creation_time) // (24 * 3600) >= daysToDelete:
                os.unlink(fileWithPath)
                print('{} removed'.format(fileWithPath))
                print("\n")
            else:
                print('{} not removed'.format(fileWithPath))
    
    0 讨论(0)
提交回复
热议问题