Skip to main content
 首页 » 编程设计

python之如何选择某个位置将字符串拆分为 "_"

2025年05月04日30langtianya

我有一个像这样的字符串'00004079_20150427_5_169_192_114.npz',我想把它拆分成这个['00004079_20150427_5', '169_192_114.npz']。

我尝试了 Python 字符串 split() 方法:

a = '00004079_20150427_5_169_192_114.nii.npz' 
a.split("_", 3) 

但它返回了这个:

['00004079', '20150427', '5', '169_192_114.nii.npz'] 

如何根据第三次 “_” 出现将它分成两部分?

我也试过这个:

reg = ".*\_.*\_.\_" 
re.split(reg, a) 

但它返回:

['', '169_192_114.nii.npz'] 

请您参考如下方法:

您可以根据分隔符 _ 最多拆分字符串 3 次,然后将除最后一个值之外的所有内容合并回去

>>> *start, end = s.split('_', 3) 
>>> start = '_'.join(start) 
>>>  
>>> start 
'00004079_20150427_5' 
>>> end 
'169_192_114.npz' 

对于python2,你可以按照这个来代替

>>> lst = s.split('_', 3) 
>>> end = lst.pop() 
>>> start = '_'.join(lst) 
>>>  
>>> start 
'00004079_20150427_5' 
>>> end 
'169_192_114.npz'