python - 使用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")
解决方案
如果要递归移动目录及其子目录,可以使用shutil
:
import shutil
import os
source = "/parent/subdir"
destination = "/parent/"
files_list = os.listdir(source)
for files in files_list:
shutil.move(files, destination)
推荐阅读
- javafx - 如何让 Key Press 在两个文件 Javafx 项目上工作
- c++ - 如何挂钩全局/原始 Xinput 事件?
- html - 移动我的文本以确保它与框居中的更简单方法?
- ember.js - Ember Inspector 未检测到 ember-cli 应用程序
- azure - 什么是 Azure“api.cds.appsplatform.us”服务?
- sql - 在基于其他列的 where 子句中使用 case 表达式选择条件
- azure-api-management - 导出/导入 Azure API 管理开发人员门户配置
- c - c - 如何访问单独头文件中定义的值
- azure - 服务总线资源管理器 - 锁定资源
- python - Gmail API - Python 中的自动转发