我有一个文件列表:
my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt', 'identification_1321_9.txt']
我如何一次解析这些全部以获得每个中的第二个数字(第二个'_'之后和'。'之前的数字)?
答案 0 :(得分:3)
我会使用列表理解。
>>> my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt', 'identification_1321_9.txt']
>>> [i[i.rfind('_') + 1:i.rfind('.')] for i in my_list]
['23', '133', '9']
当然,如果你需要整数,你可以在理解中应用int()
。
答案 1 :(得分:1)
这将为您提供数字:
import re
def get_numbers(list):
out = []
for l in list:
matched = re.match(r'\w+_\d+_(\d+)\.txt', l)
if matched:
out.append(matched.group(1))
return(out)
my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt']
numbers = get_numbers(my_list)