首页 > 解决方案 > 使用python脚本递归移动目录

问题描述

目前,此脚本创建一个文件夹,其中名称是使用日期+我想提供的名称,并将过去 12 小时内修改的所有文件从所选路径移动到此创建的文件夹,然后将其发送到亚马逊 S3。问题是,我需要这个脚本不仅可以移动文件夹内的文件,还需要移动整个文件夹,我该怎么做?

import datetime
import sys
import os

now = datetime.datetime.now()
newDirName = now.strftime("%Y_%m_%d-name")
print ("Making directory" + newDirName)
os.mkdir(newDirName)



import os,time
import datetime
import shutil

import datetime as dt

now = dt.datetime.now()
ago = now-dt.timedelta(hours=12)
strftime = "%H:%M %m/%d/%Y"
created = '/path/of/files'
dest = now.strftime("%Y_%m_%d-name")


for root, dirs,files in os.walk(created):
    for fname in files:
        path = os.path.join(root, fname)
        st = os.stat(path)
        mtime = dt.datetime.fromtimestamp(st.st_mtime)
        if mtime > ago:
            print("True:  ", fname, " em ", mtime.strftime("%H:%M %m/%d/%Y"))
            shutil.move(path, dest)

import os

sync_command = f"aws s3 sync {dest} s3://bucket.name/"
os.system(sync_command)
print ("files uploaded")

标签: pythondirectory

解决方案


如果要递归移动目录及其子目录,可以使用shutil

import shutil
import os

source = "/parent/subdir"
destination = "/parent/"
files_list = os.listdir(source)
for files in files_list:
    shutil.move(files, destination)

推荐阅读