gpt4 book ai didi

python - 如何对给定后缀的文件执行不区分大小写的搜索?

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:54 25 4
gpt4 key购买 nike

我正在寻找与 find $DIR -iname '*.mp3' 等效的方法,但我不想做古怪的 ['mp3', 'Mp3' , MP3', 等等] 东西。但我不知道如何将 re*.IGNORECASE 内容与简单的 endswith() 方法结合起来。我的目标是不错过任何一个文件,我想最终将其扩展到其他媒体/文件类型/后缀。

import os
import re
suffix = ".mp3"

mp3_count = 0

for root, dirs, files in os.walk("/Volumes/audio"):
for file in files:
# if file.endswith(suffix):
if re.findall('mp3', suffix, flags=re.IGNORECASE):
mp3_count += 1

print(mp3_count)

任何反馈的TIA

最佳答案

不要为 os.walk 而烦恼。学习使用the easier, awesome pathlib.Path反而。像这样:

from pathlib import Path

suffix = ".mp3"

mp3_count = 0

p = Path('Volumes')/'audio': # note the easy path creation syntax
# OR even:
p = Path()/'Volumes'/'audio':

for subp in p.rglob('*'): # recursively iterate all items matching the glob pattern
# .suffix property refers to .ext extension
ext = subp.suffix
# use the .lower() method to get lowercase version of extension
if ext.lower() == suffix:
mp3_count += 1

print(mp3_count)

“一行”,如果你喜欢那种东西(为清楚起见多行):

sum(1 for subp in (Path('Volumes')/'audio').rglob('*')
if subp.suffix.lower() == suffix)

关于python - 如何对给定后缀的文件执行不区分大小写的搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46067185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com