2024-04-27 08:06:45 发布
网友
我正在尝试从文件名中提取年份。 我有文件,名为
godzilla_2012.txt
king_arthur_legend_of_the_sword_2016.txt
Teenage_Mutant_ninja_turtle_2017.txt
例如,我想从文件名中提取年份
2012
2016
等等
你可以试一个案例。如果要对多个语句使用它,可以在之后迭代使用它
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])
filename.split('_')[-1].split('.')[0]
int(filename.split('_')[-1].split('.')[0])
正则表达式更强大,可以让您处理更广泛的格式,但这可能是一件坏事。例如,如果有一个正则表达式查找任何数字字符,它将在wonder_woman_1984_2020.txt中选择1984,在2001_a_space_odyssey_1968.txt中选择2001
wonder_woman_1984_2020.txt
1984
2001_a_space_odyssey_1968.txt
2001
您可以在此处使用re.findall:
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']
你可以试一个案例。如果要对多个语句使用它,可以在之后迭代使用它
如果总是这种格式,那么可以使用
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
:相关问题 更多 >
编程相关推荐