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

2024-05-13 21:11:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个实用工具来存档我每天下载的文件到一个新的文件夹

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

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

如果您能在MAC操作系统的环境中提供帮助,那就太好了

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


Tags: 文件文件夹环境mac指南实用工具脚本语言archived
1条回答
网友
1楼 · 发布于 2024-05-13 21:11:01

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

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

import datetime as dt
import time
import os
import zipfile

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

与参考答案不同,我们需要的是文件列表,而不是print输出。因此,我们初始化一个列表,并在每次迭代时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)

相关问题 更多 >