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

2024-10-02 12:29:39 发布

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

我正试图根据今天的日期压缩文件。我已经实现了如何使用loop压缩文件夹中的所有文件,但我只想压缩具有以下格式的文件:

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()

我正在努力解决的部分是识别文件。我需要使用regex还是可以通过一些strip操作来实现


Tags: 文件pathimporttodayosdownloadsfolderzip
1条回答
网友
1楼 · 发布于 2024-10-02 12:29:39

使用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()

相关问题 更多 >

    热门问题