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

Python中用通配符指定Zip文件路径报错的解决方法

解决通配符路径在files_extract_with_structure函数中报错的问题

问题核心是files_extract_with_structure不支持直接接收带通配符的路径,这类文件操作函数通常仅接受具体的单个文件路径,无法自动解析*这类通配符。你需要先手动解析出符合通配符规则的所有文件,再逐个调用提取函数。

解决方案(按环境选择)

场景1:Databricks环境

利用dbutils.fs.ls遍历目录,结合fnmatch过滤匹配文件名:

import fnmatch

# 定义目录和匹配模式
dbfs_dir = "/mnt/devadls/pre/Source_Files/2022-10/"
file_pattern = "767676.XXX.XXX.XXXX.*.txt.zip"

# 获取目录下所有文件,过滤出符合模式的文件并转换为/dbfs路径
matching_files = [
    f"/dbfs{dbfs_dir}{file.name}" 
    for file in dbutils.fs.ls(dbfs_dir) 
    if fnmatch.fnmatch(file.name, file_pattern)
]

# 逐个处理匹配到的Zip文件
if matching_files:
    for file_source in matching_files:
        files_extract_with_structure(file_source, file_dest)
else:
    print("未找到符合条件的Zip文件")

场景2:普通Python环境

使用glob模块直接解析通配符路径:

import glob

# 带通配符的路径模式
file_pattern = "/dbfs/mnt/devadls/pre/Source_Files/2022-10/767676.XXX.XXX.XXXX.*.txt.zip"

# 获取所有匹配的文件路径
matching_files = glob.glob(file_pattern)

# 逐个调用提取函数
if matching_files:
    for file_source in matching_files:
        files_extract_with_structure(file_source, file_dest)
else:
    print("未找到符合条件的Zip文件")

关键说明

  • 增加空列表判断,避免无意义的函数调用。
  • 若需要为每个Zip文件生成独立的目标路径,可以在遍历过程中根据文件名动态拼接file_dest。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:01:22