python提取更改字符串的特定部分

2024-09-30 06:18:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下URL字符串:

Hdf5File= '/home/Windows-Share/SCS931000126/20170101.h5'

我想从这个字符串中得到两个所需的输出:

1- 'SCS931000126' 
2- '20170101'

我写这个正则表达式是为了提取上述输出,所以我写了:

import re
print(re.split(r'/', (re.split(r'[a-f]',Hdf5File)[4]))[1])
print(re.split(r'\.', (re.split(r'/', (re.split(r'[a-f]',Hdf5File)[4]))[2]))[0])

这给了我想要的输出(如果有更好的方法提取这些输出请让我知道)。你知道吗

但是情况是URL的这部分可能会改变,不管URL的哪一部分可能改变,我是否只会得到我想要的输出,它总是在字符串的末尾?你知道吗

例如,如果我有:

Hdf5File='/home/dal/windows-Share/SCS931000126/20170101.h5'

那我就不能再用我的正则表达式了。有没有什么方法可以更易于重用?你知道吗


Tags: 方法字符串importreurlsharehomewindows
2条回答

你需要re.split吗?你也可以用str.split来做这个:

In [294]: x, y = Hdf5File.split('/')[-2:]

In [296]: x, y.split('.')[0]
Out[296]: ('SCS931000126', '20170101')

虽然简单的拆分可以像前面演示的那样工作,但您也可以使用os.path获取url的部分内容:

import os

Hdf5File= '/home/Windows-Share/SCS931000126/20170101.h5'

f = os.path.basename(Hdf5File)
d = os.path.basename(os.path.dirname(Hdf5File))
print( d, f ) # SCS931000126 20170101.h5
# and to remove the file extension:
f = os.path.splitext(f)[0]
print(f) # 20170101

相关问题 更多 >

    热门问题