Python 3.x 从给定目录路径提取文件名的python正则表达式

Python 3.x 从给定目录路径提取文件名的python正则表达式,python-3.x,regex,Python 3.x,Regex,我有一些这样的文件夹: ../dog_breeds/images/Images/n02085620-Chihuahua ../dog_breeds/images/Images/n02085782-Japanese_spaniel ../dog_breeds/images/Images/n02086910-papillon ../dog_breeds/images/Images/n02088466-bloodhound .... .... 我只想使用Python从文件路径中提取这些信息(吉娃娃、

我有一些这样的文件夹:

../dog_breeds/images/Images/n02085620-Chihuahua
../dog_breeds/images/Images/n02085782-Japanese_spaniel
../dog_breeds/images/Images/n02086910-papillon
../dog_breeds/images/Images/n02088466-bloodhound
....
....
我只想使用Python从文件路径中提取这些信息(吉娃娃、日本猎犬、帕皮隆、猎犬)。
有人能帮我吗?

有两个共同的因素

  • 图像文件夹路径相同

    • 例如:所有图像都以../dog_breeds/images/images开头/
    • 替换('../dog_breeds/images/images/','')
      以删除路径
  • 所有图像都以10个字符开头

    • 例如:n02085620-,n02085782-
    • 替换('../dog_breeds/images/images/','')[10:
      以删除字符
如果我们将这两个因素结合起来:

res=['../dog_breeds/images/images/n02085620 Chihuahua',
“../dog_breeds/images/images/n02085782-日本猎犬”,
“../dog_breeds/images/images/n02086910 papillon”,
“../dog_breeds/images/images/n02088466猎犬”]
第1部分=[r.replace('../dog_breeds/images/images/','')[10:]表示r的分辨率]
印刷(第一部分)
输出为:

['Chihuahua', 'Japanese_spaniel', 'papillon', 'bloodhound']

您可以在此处使用
str.split

Ex:

s = """../dog_breeds/images/Images/n02085620-Chihuahua
../dog_breeds/images/Images/n02085782-Japanese_spaniel
../dog_breeds/images/Images/n02086910-papillon
../dog_breeds/images/Images/n02088466-bloodhound
"""

for p in s.splitlines():
    print(p.split("-")[-1])
Chihuahua
Japanese_spaniel
papillon
bloodhound

如果你需要正则表达式

import re

for p in s.splitlines():
    print(re.search(r"\-(\w+)$", p).group(1))
输出:

s = """../dog_breeds/images/Images/n02085620-Chihuahua
../dog_breeds/images/Images/n02085782-Japanese_spaniel
../dog_breeds/images/Images/n02086910-papillon
../dog_breeds/images/Images/n02088466-bloodhound
"""

for p in s.splitlines():
    print(p.split("-")[-1])
Chihuahua
Japanese_spaniel
papillon
bloodhound

谢谢,我实际上正在寻找一个
regex
解决方案。