在python中,从扩展名之前的最后一个索引中提取文件名的年份

2024-04-27 08:06:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从文件名中提取年份。 我有文件,名为

godzilla_2012.txt

king_arthur_legend_of_the_sword_2016.txt

Teenage_Mutant_ninja_turtle_2017.txt

例如,我想从文件名中提取年份

2012

2016

等等


Tags: 文件ofthetxt文件名年份legendturtle
3条回答

你可以试一个案例。如果要对多个语句使用它,可以在之后迭代使用它

statement = 'king_arthur_legend_of_the_sword_2016.txt'
year = statement.split('.')[0].split('_')[-1]

如果总是这种格式,那么可以使用filename.split('_')[-1].split('.')[0]。这将给弦;如果希望它是一个整数,可以执行int(filename.split('_')[-1].split('.')[0])

正则表达式更强大,可以让您处理更广泛的格式,但这可能是一件坏事。例如,如果有一个正则表达式查找任何数字字符,它将在wonder_woman_1984_2020.txt中选择1984,在2001_a_space_odyssey_1968.txt中选择2001

您可以在此处使用re.findall

inp = ["godzilla_2012.txt", "king_arthur_legend_of_the_sword_2016.txt", "Teenage_Mutant_ninja_turtle_2017.txt"]
years = [re.findall(r'(\d{4})\.\w+$', x)[0] for x in inp]
print(years)  # ['2012', '2016', '2017']

相关问题 更多 >