ファイル名に基づいてデータベース内のファイルを並べ替えようとしています。ファイル名は文字と数字で構成されます(例:M23GH04.wav)。2番目と3番目の文字、つまり23は、使用したいクラス情報です。23が2番目と3番目の位置にあるすべてのファイルのみを取得する方法はありますか?
私が試してみました:
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]
Use the same list comprehension, but just change spk_id in f
to f[1:3] == spk_id
, this code makes it only extract the 2nd and the 3rd characters of the filename, then check if it equals to '23'
, the spk_id
variable.
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加