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

Python 如何使用正则表达式选择文件路径的单个部分,python,regex,filepath,Python,Regex,Filepath,我有这样一个文件路径: "C:/Users/myname/Documents/KF0_IFN_HLA_11.csv" 我如何使用正则表达式来获取“KF0\u IFN\u HLA\u 11.csv”部分 我是Python的初学者,我只是想了解一些关于如何解决上述问题的技巧。我不会使用正则表达式,相反,os.path模块更合适。使用os.path.basename将提取没有完整路径的文件 >>> import os >>> p = r"C:/Users/myna

我有这样一个文件路径:

"C:/Users/myname/Documents/KF0_IFN_HLA_11.csv"
我如何使用正则表达式来获取
“KF0\u IFN\u HLA\u 11.csv”
部分


我是Python的初学者,我只是想了解一些关于如何解决上述问题的技巧。

我不会使用正则表达式,相反,
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'

我不会为此使用正则表达式,相反,
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(不建议):

使用
re.search
首先导入re
):

模式是

r'.*/(.*)$'
它提取最后一个正斜杠后的位


备选案文2(建议):

使用
os.path.split
os.path.basename
首先导入os
):

os.path.split
将路径拆分为头部和尾部,这里您只需提取尾部,因为这正是您需要的

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

选项1(不推荐):

使用
re.search
首先导入re
):

模式是

r'.*/(.*)$'
它提取最后一个正斜杠后的位


备选案文2(建议):

使用
os.path.split
os.path.basename
首先导入os
):

os.path.split
将路径拆分为头部和尾部,这里您只需提取尾部,因为这正是您需要的


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

如果您只需要最后一部分,可以使用
os.path.basename
您必须使用regexp吗?因为有更好的方法可以做到这一点。不,我不必使用正则表达式。你介意告诉我还有什么更好的方法吗?@nobodyAskedYouPatrice如果你必须使用regex,为什么有更好的方法很重要?(就像已经列出的一样)使用正则表达式,只需此
[^/]*$
如果您只需要最后一部分,您可以使用
os.path.basename
您必须使用regexp吗?因为有更好的方法可以做到这一点。不,我不必使用正则表达式。你介意告诉我还有什么更好的方法吗?@nobodyAskedYouPatrice如果你必须使用regex,为什么有更好的方法很重要?(就像已经列出的一样)使用正则表达式,很简单,
[^/]*$
@nobodyAskedYouPatrice很乐意提供帮助。我相信你应该知道你所有的选择,这样你就知道什么是不用的:)@nobodyAskedYouPatrice很乐意帮忙。我相信你应该知道你所有的选择,这样你就知道什么是不用的:)