【问题标题】:Is it Possible through python or with any other language to archive the daily downloaded files into one folder是否可以通过python或任何其他语言将每日下载的文件归档到一个文件夹中
【发布时间】:2019-06-17 03:33:50
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 可以使用任何脚本语言来实现这一点。 Python 将是一个不错的选择。你可以在这里找到 Python 教程:docs.python.org/3/tutorial/index.html
  • os 模块对这项任务也特别有用

标签: python shell scripting-language


【解决方案1】:

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

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

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)

我们还需要nowstrftime 表示作为存档文件标题。

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)

【讨论】:

    猜你喜欢
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多