Python如何从文件夹中获取文件名大于00918.xlsb的xlsb文件
实现方法
你的文件采用固定数字补零的命名规则,只需要在现有列表推导式中增加筛选判断即可,不需要修改原有逻辑框架。
方法1:数值判断(推荐,兼容性最好)
提取文件名中的数字部分转成整数后和918比较,不受文件名补零位数变化影响,稳定性最高:
import os import glob import numpy as np # 修正了原代码中glob路径多余的斜杠问题 fichiers = np.array([ fichier for fichier in glob.glob("./brut/*.xlsb") if int(os.path.basename(fichier).removesuffix('.xlsb')) > 918 ])
*如果你的Python版本低于3.9,不支持removesuffix方法,把判断行替换成if int(os.path.basename(fichier).split('.')[0]) > 918即可。
方法2:字符串直接比较(适合当前固定命名规则)
因为你当前所有文件名都是固定5位数字补零加.xlsb后缀,相同长度的数字字符串字典序比较结果和数值比较结果完全一致,不需要做类型转换,文件量极大时性能更好:
import glob import numpy as np import os fichiers = np.array([ fichier for fichier in glob.glob("./brut/*.xlsb") if os.path.basename(fichier) > "00918.xlsb" ])
注意:如果后续文件命名出现位数不统一的情况(比如新增文件命名为
919.xlsb而非00919.xlsb),字符串比较的结果会出错,这种场景下请优先使用数值判断的方法。
两种方法都可以自动识别后续新增的编号大于918的文件,不需要随文件数量增加调整代码。
内容的提问来源于stack exchange,提问作者tibibou
相关产品推荐
相关产品推荐

