1

我编写了下面的脚本,它检查指定的路径PARENT_DIR并找到最近修改的目录(+子目录),然后将它们备份到MOVE_DIR

我正在努力解决的问题是,似乎这个脚本以某种方式不检查目录的 mtime 并将父目录中的整个内容复制到目标地址。我在这里做错了什么?

import os
import os.path
import datetime
from shutil import copytree
from shutil import move
from time import time
os.chdir("/home/sina/Desktop/incoming")

def mins_since_mod(fname):
    """Return time from last modification in minutes"""
    return (time() - os.path.getmtime(fname)) / 60
PARENT_DIR = '/home/sina/Desktop/incoming'
MOVE_DIR = '/home/sina/Desktop/incoming_New'

# Loop over files in PARENT_DIR
for fname in os.listdir(PARENT_DIR):
    # If the file is a directory and was modified in last 10 days
        if ((os.path.isdir(fname)) and (mins_since_mod(fname) < 14400)):
           copytree(fname, MOVE_DIR) # move it to a new location

如果我想让问题更清楚,您可以考虑以下带有以下子目录的路径:

 /home/sina/Desktop/incoming/A/A1.1
 /home/sina/Desktop/incoming/A/A2.2
 ...

../A诸如此类的子目录A2.2A1.1正在被另一个应用程序修改(此应用程序甚至可能添加新的子目录),我希望每 10 天在此路径上备份一次它们/home/sina/Desktop/incoming_New/A/{subdirectories}

任何形式的帮助表示赞赏。

4

0 回答 0