文件夹中符合条件的文件索引列表
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))
我正在尝试列出文件夹中匹配 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))