Python 如何选择某个位置将字符串拆分为_&引用;?

Python 如何选择某个位置将字符串拆分为_&引用;?,python,string,split,Python,String,Split,我有一个像这样的字符串'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、 拆分(“u25;”,3) 但它回信说: ['00004079', '20150427', '5', '169_192_114.nii.npz'] 如何通过第

我有一个像这样的字符串
'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、 拆分(“u25;”,3)
但它回信说:

['00004079', '20150427', '5', '169_192_114.nii.npz']
如何通过第三个
“\uquot
外观将其分为两部分

我也试过:

reg=“.\\.\.\.\\”
关于拆分(注册,a)
但它的回报是:

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

可能的方法之一(如果使用正则表达式):

输出:

('00004079_20150427_5', '169_192_114.nii.npz')

可能的方法之一(如果使用正则表达式):

输出:

('00004079_20150427_5', '169_192_114.nii.npz')

您可以根据分隔符
\uuuu
将字符串拆分最多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'

您可以根据分隔符
\uuuu
将字符串拆分最多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'

谢谢还有一个问题,为什么要在
start
前面添加
*
,它是指针还是类似的东西?这称为列表解包<代码>*a,b=[1,2,3]将最后一个元素
3
分配给
b
,列表的其余
[1,2]
分配给
a
。查看更多详细信息谢谢!还有一个问题,为什么要在
start
前面添加
*
,它是指针还是类似的东西?这称为列表解包<代码>*a,b=[1,2,3]将最后一个元素
3
分配给
b
,列表的其余
[1,2]
分配给
a
。查看更多详细信息