在glob迭代中忽略大小写的方法
有没有更简单的方法来遍历 xls
文件,不管文件名的大小写?
for file in [glob.glob(os.path.join(dir, '*.xls')), glob.glob(os.path.join(dir, '*.XLS'))]:
3 个回答
0
这里可以用一种脚本语言来帮忙。比如在Ruby语言中,如果你想查看所有包含“gem”的文件名,而且不区分大小写,可以用下面的代码:
ruby -e 'puts Dir["*"].grep /gem/i'
这段代码可以进一步整理成一个脚本,这样你就可以输入不同的搜索关键词和文件夹路径来使用了:
#!/usr/bin/env ruby
# lsi - ls case insensitive
mask = /#{ARGV[0]}/i
dir = ARGV[1] || '.'
puts Dir[File.join(dir, '*')].grep(mask)
3
你可以不使用 glob
,手动进行匹配:
for file in os.listdir(dir):
if not file.lower().endswith('.xls'):
continue
...
16
glob和它背后的fnmatch没有不区分大小写的选项,但你可以使用方括号来实现这个功能:
for file in glob.iglob(os.path.join(dir, '*.[xX][lL][sS]')):