我编写了下面的脚本,它检查指定的路径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.2
或A1.1
正在被另一个应用程序修改(此应用程序甚至可能添加新的子目录),我希望每 10 天在此路径上备份一次它们/home/sina/Desktop/incoming_New/A/{subdirectories}
任何形式的帮助表示赞赏。