如何解决Python-移动和压缩文件和文件夹
我是python的新手。我有一项任务是清理来自我们通用驱动器的12个月大的所有旧视频文件。
每个带有“ Movies”和“ Sorted”子文件夹的文件夹(事件)的文件夹结构都相同。至少有1000个此类事件文件夹,其子文件夹“电影”中包含avi和原始(视频)文件。
对于这1000个事件中的每一个,我都必须将所有avi文件移至“ Sorted \ AVI_Sort”文件夹,并将原始文件移至“ Sorted \ RAW_Sort”。然后压缩Event_Name文件夹,存储在Sorted文件夹中,然后删除原始Event_Name文件夹。
我已经编写了以下代码,但仅部分起作用。找到12个月大的文件无法正常工作,并在压缩后删除原始文件,我得到一条错误消息“权限被拒绝”。我在这里做什么错了?
from os import path
from datetime import datetime,timedelta
from dateutil.relativedelta import relativedelta
import os,sys
import os.path
import shutil
#function to find 12 months old file
def find_old_files(file):
twelve_months_ago = datetime.now() - relativedelta(months=12)
filetime = datetime.fromtimestamp(path.getctime(file))
if filetime < twelve_months_ago:
return file
#move avi and raw files in Sorted folder
ext = ("avi","AVI","Avi")
for i,j,y in os.walk(os.getcwd()):
if i.endswith('Sorted'):
dest = i
if i.endswith('Movies'):
dest_raw = dest + '\\RAW_Sort'
dest_avi = dest + '\\AVI_Sort'
files = os.listdir(i)
for f in files:
if find_old_files(f): # function to find 12 months old file
if not f.endswith(ext):
shutil.move(i+'\\'+f,dest_raw)
if f.endswith(ext):
shutil.move(i+'\\'+f,dest_avi)
#zip and delete the original file
for i,y in os.walk(os.getcwd()):
if i.endswith('_Sort'):
shutil.make_archive(os.path.basename(i),'zip',i)
os.remove(os.path.dirname(i))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。