指定されたパスをチェックし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
が別のアプリによって変更されています (このアプリは新しいサブディレクトリを追加する可能性があります)。このパスで 10 日ごとにそれらのバックアップを作成したいと考えています。A2.2
A1.1
/home/sina/Desktop/incoming_New/A/{subdirectories}
どんな種類の助けも大歓迎です。