我编写了下面的脚本,它检查指定的路径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}
感谢任何形式的帮助。