如何使用python拆分字符串

如何使用python拆分字符串,python,python-3.x,Python,Python 3.x,我有一个文件名为187045\u 20191025\u Release\u UAT\u 1.zip。我想在最后得到187045和1 我使用了这个代码片段,但它并没有给我想要的东西 cms_name = splitext(split('187045_20191025_Release_UAT_1.zip')[1])[0].rsplit('_', 1) print(cms_name) 这是输出 ['187045_20191025_Release_UAT', '1'] cms\u name必须只给我

我有一个文件名为
187045\u 20191025\u Release\u UAT\u 1.zip
。我想在最后得到
187045
1

我使用了这个代码片段,但它并没有给我想要的东西

cms_name = splitext(split('187045_20191025_Release_UAT_1.zip')[1])[0].rsplit('_', 1)
print(cms_name)
这是输出

['187045_20191025_Release_UAT', '1']
cms\u name
必须只给我
187045
。很明显,我在某处犯了一个错误

请引导我


关于

基本上你的文件名是由\u连接起来的,所以你想用它来分割,
很明显你想要的是第一部分和最后一部分

要获取第一部分,只需获取拆分的第一个元素,
最后一部分还附加了文件扩展名,因此您可以通过在
上拆分并获取该拆分的第一部分来消除该扩展名

试试这个:


parts='187045_20191025_Release_UAT_1.zip'。拆分('uu')
cms_名称=零件[0]
_末端的_one_=零件[-1]。拆分('..')[0]
打印([cms\u名称,在\u端的\u一个])
输出:

['187045', '1']
['187045','1']


您可以使用regex或split,下面是使用split的示例:

s='187045_20191025_Release_UAT_1.zip'
cms_name=[s.split('_')[0], s.split('_')[-1].split('.')[0]]
print(cms_name)
结果是:

['187045', '1']
输出:

['187045', '1']
非常简单:

导入操作系统
my_file_name=os.path.basename(“test_x_y_1.png”)
my_file_name=my_file_name.split(“”)
我的文件名[len(我的文件名)-1]=我的文件名[len(我的文件名)-1]。拆分(“.”)
what\u you\u want\u get=list((我的文件名[0],我的文件名[len(我的文件名)-1][0]))
打印(你想得到什么)

代码是非常基本的,可以优化,但你得到的精神。。。每次出现“uu”或“.”或任何您想要的字符时,使用“拆分”来分隔字符串;)

您也可以使用列表解包


g='187045\u 20191025\u发行版\u UAT\u 1.zip'
第一,*中间,最后=g.replace('.zip','').split(''u')
打印([第一,最后])

我们将“.zip”替换为零,将其拆分为
。这将返回一个列表,您可以从中获取第一个和最后一个项目。如果你不打算使用中间的所有值列表的<代码>中/代码>,你可以只做一个丢弃变量

<代码> <代码> > * > >代码>我相信,如果你对分隔符进行规则化(即“.”),则拆包会给出一个更优雅的解决方案:

输出:

print([reqId,testId])

['187045', '1']

你也可以用这样的东西

text='187045_20191025_Release_UAT_1.zip'
arr = text.replace('.zip', '').split('_')

>>> arr[::len(arr)-1]
['187045', '1']

如果将字符串指定为变量a,如下所示:

a = "187045_20191025_Release_UAT_1.zip"
通过下面的代码,您可以得到您想要的:

lis = [a.split("_")[0], a.split("_")[-1][:-4]]
在这里,我们实际上有一个.split(“u”)作为:


顾名思义,rsplit从右边开始分裂。您正在将列表按最右侧拆分。尝试拆分您仅从右侧开始拆分(这就是
rsplit
所做的),并将限制设置为o
1
。您可能复制了此代码,不确定它的功能。查看字符串文档,很明显您需要
split
这里像这样简单的东西有什么问题:
cms\u name='187045\u 20191025\u Release\u UAT\u 1.zip'。split('u')
,然后
打印(cms\u name[0],cms\u name[1])
?'187045\u 20191025\u Release\u UAT\u 1.zip'。split('0')。split('
lis = [a.split("_")[0], a.split("_")[-1][:-4]]
a.split("_") = ['187045', '20191025', 'Release', 'UAT', '1.zip']