首页 > 解决方案 > 是否可以通过python或任何其他语言将每日下载的文件归档到一个文件夹中

问题描述

我需要一个实用程序来将我每天下载的文件归档到一个新文件夹中。

假设我今天下载了 10 个文件,在一天结束时,所有文件都应该归档到一个名为Archived_TodaysDate 的新文件夹中。

此活动/任务可以每天安排和执行。

如果您在 MAC 操作系统方面提供帮助,那就太好了。

我知道这可以通过许多脚本语言来完成,但我想知道对于 mac,哪种脚本语言适合这项任务以及快速入门指南。

标签: pythonshellscripting-language

解决方案


如果您不熟悉设置 chrontab,则可以按照以下步骤进行设置我寻找了一个特定于 mac 的,但有无数关于此的指南。)

您的归档脚本可以非常简单。首先生成要归档的文件列表(请参阅答案。)

import datetime as dt
import time
import os
import zipfile

now = dt.datetime.now()
ago = now-dt.timedelta(days=1)

与引用的答案不同,我们需要文件列表,而不是printed 输出。append所以我们在每次迭代时初始化一个列表和它。在这里,我假设您的脚本位于您的下载文件夹中,但您可以根据需要更改给定的路径os.walk

to_archive = []

for root, dirs,files in os.walk('.'):  
    for fname in files:
        path = os.path.join(root, fname)
        st = os.stat(path)    
        mtime = dt.datetime.fromtimestamp(st.st_mtime)
        if mtime > ago:
            to_archive.append(path)

我们还想要我们的存档文件标题的strftime表示now

ts = now.strftime("%m_%d_%Y")

最后将文件写入存档文件(在这种情况下,我选择了zip格式)。

with zipfile.ZipFile('{}_archive.zip'.format(ts), 'w') as myzip:
    for x in to_archive:    
      myzip.write(x)

推荐阅读