如何使用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
所做的),并将限制设置为o1
。您可能复制了此代码,不确定它的功能。查看字符串文档,很明显您需要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']