如何使用正则表达式选择文件路径的单个部分

时间:2017-07-27 19:21:16

标签: python regex filepath

我有一个像这样的文件路径:

"C:/Users/myname/Documents/KF0_IFN_HLA_11.csv"

我怎样才能使用正则表达式来获取"KF0_IFN_HLA_11.csv"部分?

我是Python的初学者,我只是在寻找有关如何解决上述问题的一些提示。

2 个答案:

答案 0 :(得分:3)

我不会使用正则表达式,而os.path模块更合适。使用os.path.basename将在没有完整路径的情况下提取文件。

>>> import os
>>> p = r"C:/Users/myname/Documents/KF0_IFN_HLA_11.csv"
>>> os.path.basename(p)
'KF0_IFN_HLA_11.csv'

答案 1 :(得分:0)

选项1(不推荐):

首先使用re.searchimport re):

In [1099]: re.search(r'.*/(.*)$', text).group(1)
Out[1099]: 'KF0_IFN_HLA_11.csv'

模式是

r'.*/(.*)$'

它在最后一个正斜杠之后提取该位。

选项2(推荐):

首先使用os.path.splitos.path.basenameimport os):

In [1100]: os.path.split(text)[1]
Out[1100]: 'KF0_IFN_HLA_11.csv'

In [1101]: os.path.basename(text)
Out[1101]: 'KF0_IFN_HLA_11.csv'

os.path.split将路径分成头部和尾部,在这里你只需要提取尾部,因为这就是你所需要的。

os.path.basename会自动返回尾部。