如何在 python 中提取文件名的中间部分?

How to extract the middle part of a filename in python?

我有一个类似模式的文件名: "XC47566 - Tui Parakeet - Brotogeris sanctithomae.wav"

我想提取粗体部分。解决这个问题的方法是什么?

说明: 大多数文件都有这种模式:XC##### - 鸟类名称 - 鸟类种类。然而,有些文件有带连字符的单词,例如:XC22087 - Silky-tailed Nightjar - Antrostomus sericocaudatus

感谢大家的帮助。我不太熟悉使用文件扩展名,所以我真的很感激

您可以拆分一个字符:

filename.split('-')[1]

会给你Tui Parakeet

import os

filename = "XC47566 - Tui Parakeet - Brotogeris sanctithomae.wav"

os.path.splitext(filename)[0].split("-", 1)[1].strip()

给你"Tui Parakeet - Brotogeris sanctithomae"

我添加了 strip(),因为我假设您对前导/尾随白色 spaces 不感兴趣。

如果您想将鸟名和鸟种拆分成单独的变量,您可以确保其中 none 个包含 " - "(space 后跟破折号a space), 就可以了

bird_name, bird_species = os.path.splitext(filename)[0].split(" - ")[1:3]

试试这个:

middle_name = "XC47566 - Tui Parakeet - Brotogeris sanctithomae.wav"[10:-4]