在目录中查找从日期开始的文件

时间:2019-05-08 12:28:29

标签: python python-3.x

我正在尝试根据今天的日期压缩文件。我已经实现了如何使用循环将文件夹中的所有文件压缩的​​方法,但是我只想压缩具有以下格式的文件:

yyyymmdd_filename

当前,我的脚本获取今天的日期并将其转换为所需的格式:

import os
import zipfile
import datetime

today = datetime.date.today().strftime('%y%m%d')
print(today)
today = str(today)
print(today)

fantasy_zip = zipfile.ZipFile('C:\\Users\\nex26da\\Downloads\\practice\\ziprep\\archive.zip', 'w')

for folder, subfolders, files in os.walk('C:\\Users\\nex26da\\Downloads\\practice\\ziprep'):

    for file in files:
        if not file.endswith('.zip'):
            fantasy_zip.write(os.path.join(folder, file),
                              os.path.relpath(os.path.join(folder, file), 'C:\\Users\\nex26da\\Downloads\\practice\\ziprep'),
                              compress_type=zipfile.ZIP_DEFLATED)

fantasy_zip.close()

我正在努力的部分是识别文件。我需要使用正则表达式还是可以通过一些剥离操作来实现

1 个答案:

答案 0 :(得分:1)

使用str.startswith

例如:

import os
import zipfile
import datetime

today = datetime.date.today().strftime('%Y%m%d') #Update!
print(today)
today = str(today)
print(today)

fantasy_zip = zipfile.ZipFile('C:\\Users\\nex26da\\Downloads\\practice\\ziprep\\archive.zip', 'w')

for folder, subfolders, files in os.walk('C:\\Users\\nex26da\\Downloads\\practice\\ziprep'):

    for file in files:
        if file.startswith(today) and not file.endswith('.zip'):
            fantasy_zip.write(os.path.join(folder, file),
                              os.path.relpath(os.path.join(folder, file), 'C:\\Users\\nex26da\\Downloads\\practice\\ziprep'),
                              compress_type=zipfile.ZIP_DEFLATED)

fantasy_zip.close()