文件夹中符合条件的文件索引列表

Indexed list of files in a folder that match a criteria

我正在尝试列出文件夹中匹配 MySample %i %j.wav 的所有文件(其中 %i%j 应该是整数),但结果不是这样的 (我试过了 glob.glob('MySample *.wav')):

["MySample 117 12.wav", "MySample 011 18.wav", "MySample 13 45.wav"]

我想要可以被模式变量 %i, %j 索引的东西 :

{(117, 12): "MySample 117 12.wav", 
 (11, 18): "MySample 011 18.wav", 
 (13, 45) : "MySample 13 45.wav"}

使用正则表达式非常简单:

import os, re


samples = {}
for f in os.listdir("."):
    m = re.match(r"MySample (\d+) (\d+).wav", f)
    if m:
        samples[tuple(int(x) for x in m.groups())] = f

您可以使用正则表达式来匹配

import re

def getKey(x):
  m=re.match ('MySample (\d+) (\d+).wav',x)                                                                                                                                                                     
  if m:
    return (m.group(1),m.group(2))                                                                                                                                                                              
  else:
    return None

sample=["MySample 117 12.wav", "MySample 011 18.wav", "MySample 13 45.wav"]

然后列表理解来创建字典

r=dict(((getKey(x),x) for x in sample))