Переместить каталог рекурсивно, используя скрипт Python - PullRequest
0 голосов
/ 01 ноября 2019

В настоящее время этот сценарий создает папку, в которой имя является датой дня, когда оно использовалось + имя, которое я хочу дать, и перемещает все файлы, измененные за последние 12 часов, из выбранного пути в эту созданную папку, а затем отправляетэто на Amazon 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")

1 Ответ

0 голосов
/ 01 ноября 2019

Если вы хотите рекурсивно перемещать каталог с его подкаталогами, вы можете использовать shutil:

import shutil
import os

source = "/parent/subdir"
destination = "/parent/"
files_list = os.listdir(source)
for files in files_list:
    shutil.move(files, destination)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...