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

Python中用max结合for循环遇空目录时跳转至下一次迭代的需求

问题解决思路

先给你点破原代码里的几个坑:

  1. 你写的len(["csv_file_list"])根本不是判断目录有没有文件——这是创建了一个只包含字符串"csv_file_list"的列表,长度永远是1,所以空目录时还是会执行不带default参数的max(),直接触发报错。
  2. 你已经调用过一次带default=None的max()了,没必要重复调用,纯纯冗余操作。

要实现空目录时直接跳去处理下一个交易所,用continue语句就行,它会让循环直接跳到下一次迭代。修正后的代码如下:

import glob, os
import datetime
import shutil

exchanges = ["bats","nyse"]  # 原代码引号不匹配,已修正
for ex in exchanges:
    csv_file_list = glob.glob(f"H:\\SQL_EXPORTS\\eod\\candles\\{ex}\\*.csv")
    # 一次获取最新文件,空目录时返回None
    latest_file = max(csv_file_list, key=os.path.getctime, default=None)
    
    if latest_file is None:
        # 无文件时直接跳过当前循环,处理下一个交易所
        continue
    
    # 有文件时执行后续逻辑
    path = f'H:\\SQL_EXPORTS\\eod\\candles\\{ex}\\'
    fileBaseName = os.path.basename(latest_file).split('.')[0]
    # 这里可以添加你后续需要执行的操作,比如文件复制、数据处理等

关键修改点

  • 修正了exchanges列表的引号不匹配问题(原代码是["bats","nyse'],改为["bats","nyse"])
  • 删除了重复的os导入和冗余的max()调用
  • 用continue替代打印语句,直接跳过空目录的循环迭代
  • 简化判断逻辑,直接通过latest_file是否为None来判断目录是否为空

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:10:52