2024-05-15 02:00:59 发布
网友
我正在尝试根据文件名对数据库中的文件进行排序。文件名由字符和数字组成,例如-M23GH04.wav。第二个和第三个字母,即23,是我想要使用的班级信息。是否有一种方法可以拾取仅在第2和第3位置有23个文件的所有文件
我试过:
spk_id ='23' spk_files=[f for f in wav_files if spk_id in f]
这将提供所有文件,而不考虑“23”的位置。e、 g-M01TY23,这是不可取的。有解决办法吗
您也可以在此处使用re.match:
re.match
spk_files = [file for file in wav_files if re.match(r'^.23', file)]
尝试将列表理解与切片结合使用:
spk_files = [f for f in wav_files if f[1:3] == spk_id]
使用相同的列表理解,但只需将spk_id in f更改为f[1:3] == spk_id,此代码使其仅提取文件名的第2个和第3个字符,然后检查它是否等于'23',即spk_id变量
spk_id in f
f[1:3] == spk_id
'23'
spk_id
试试下面的一个
spk_files=[f for f in wav_files if spk_id == f[1:3]]
这将使用子字符串匹配特定索引
您也可以在此处使用
re.match
:尝试将列表理解与切片结合使用:
使用相同的列表理解,但只需将
spk_id in f
更改为f[1:3] == spk_id
,此代码使其仅提取文件名的第2个和第3个字符,然后检查它是否等于'23'
,即spk_id
变量试试下面的一个
这将使用子字符串匹配特定索引
相关问题 更多 >
编程相关推荐