[英]Check if a substring is present at a specific location in a string
我正在嘗試根據文件名對數據庫中的文件進行排序。 文件名由字符和數字組成,例如- M23GH04.wav。 第二個和第三個字母即 23 是我想使用的班級信息。 是否有一種方法可以僅在第二和第三位置拾取所有具有 23 的文件。
我試過了:
spk_id ='23'
spk_files=[f for f in wav_files if spk_id in f]
這給出了所有文件,而不管 '23' 的位置。 例如- M01TY23,這是不可取的。 有什么解決方法嗎?
嘗試使用帶切片的列表理解:
spk_files = [f for f in wav_files if f[1:3] == spk_id]
使用相同的列表spk_id in f
,但只需將spk_id in f
更改為f[1:3] == spk_id
,此代碼使其僅提取文件名的第 2 個和第 3 個字符,然后檢查它是否等於'23'
, spk_id
變量。
你也可以在這里使用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 spk_id == f[1:3]]
這將匹配特定索引與子字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.