You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除后缀为.zip.XXX(XXX取值001-029)的非标准格式文件?

修改代码以删除标准.zip及.zip.XXX(001-029)格式文件

要同时删除标准.zip文件和.zip.XXX(XXX为001至029)格式的文件,你可以选择两种方式修改代码:

方法一:使用正则表达式(简洁高效)

通过正则表达式精准匹配目标文件名,同时保留原有的标准zip文件删除逻辑:

import os
import re

directory = "你的目标目录路径"

files_in_directory = os.listdir(directory)
# 过滤条件:标准.zip文件 或 .zip.001至.zip.029的文件
filtered_files = [
    file for file in files_in_directory
    if file.endswith(".zip") or re.match(r'.*\.zip\.(0[01][0-9]|02[0-9])$', file)
]

for file in filtered_files:
    path_to_file = os.path.join(directory, file)
    os.remove(path_to_file)

正则说明

  • \.zip\.:匹配文件名中固定的.zip.部分
  • 0[01][0-9]:匹配000-019的三位数字,结合02[0-9]覆盖020-029,整体实现001-029的范围匹配
  • $:确保匹配到文件名末尾,避免误匹配包含类似字符串的其他文件

方法二:字符串分割(无需额外模块)

如果不想引入正则模块,可以通过字符串分割和数字范围判断实现:

import os

directory = "你的目标目录路径"

files_in_directory = os.listdir(directory)
filtered_files = []

for file in files_in_directory:
    # 先处理标准zip文件
    if file.endswith(".zip"):
        filtered_files.append(file)
        continue
    
    # 分割文件名,检查是否符合.zip.XXX格式
    filename_parts = file.split('.')
    # 确保至少有三个部分(例如:xxx.zip.001)
    if len(filename_parts) >= 3 and filename_parts[-2] == "zip":
        suffix = filename_parts[-1]
        # 验证后缀是三位数字且在001-029范围内
        if len(suffix) == 3 and suffix.isdigit():
            suffix_num = int(suffix)
            if 1 <= suffix_num <= 29:
                filtered_files.append(file)

for file in filtered_files:
    path_to_file = os.path.join(directory, file)
    os.remove(path_to_file)

内容的提问来源于stack exchange,提问作者itIsWhatItIs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:24:27