如何从python中的文件名下划线后提取特定数字

时间:2013-05-29 14:18:07

标签: python regex python-2.7 python-3.x filenames

我有很多文件名,如:

/home/abc/xyz/12345_993456_pqr
/home/abc/xyz/12345_883456_pqr
/home/abc/xyz/12345_773456_pqr

我需要在第一个下划线后面提取前两个数字,即998877。这不是99/88/77总是......只是一个例子......我尝试过:

re.search()  

isdigit()

但它不起作用。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:11)

一步一步:

>>> import os
>>> os.path.basename('/home/abc/xyz/12345_993456_pqr')
'12345_993456_pqr'

>>> os.path.basename('/home/abc/xyz/12345_993456_pqr').split('_')
['12345', '993456', 'pqr']

>>> os.path.basename('/home/abc/xyz/12345_993456_pqr').split('_')[1]
'993456'

>>> os.path.basename('/home/abc/xyz/12345_993456_pqr').split('_')[1][:2]
'99'

答案 1 :(得分:0)

好的,这很棘手,但试试这个:

import os, re
reg_exp = re.compile('_\d\d')
digits = [j[1:] for j in sum([reg_exp.findall(os.path.basename(i))[:1] 
                                              for i in filenames], [])]