簡體   English   中英

如何從python中的文件名下划線后提取特定數字

[英]How to extract specific digits after underscore from filename in python

我有許多文件名,如:

/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()

但它不起作用。 有人可以幫忙嗎?

一步步:

>>> 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], [])]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM