我有许多文件名,例如:
/home/abc/xyz/12345_993456_pqr
/home/abc/xyz/12345_883456_pqr
/home/abc/xyz/12345_773456_pqr
99
我需要在第一个下划线 ie or 88
or之后提取前两位数字77
。它并不99/88/77
总是......只是一个例子......我试过:
re.search()
和
isdigit()
但它不工作。有人可以帮忙吗?
我有许多文件名,例如:
/home/abc/xyz/12345_993456_pqr
/home/abc/xyz/12345_883456_pqr
/home/abc/xyz/12345_773456_pqr
99
我需要在第一个下划线 ie or 88
or之后提取前两位数字77
。它并不99/88/77
总是......只是一个例子......我试过:
re.search()
和
isdigit()
但它不工作。有人可以帮忙吗?
一步步:
>>> 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'
好的,这很棘手,但试试这个:
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], [])]