如何删除最后 \ 之前的所有字符 [重复]
Posted
技术标签:
【中文标题】如何删除最后 \\ 之前的所有字符 [重复]【英文标题】:How to remove all characters before the final \ [duplicate]如何删除最后 \ 之前的所有字符 [重复] 【发布时间】:2017-04-12 04:08:08 【问题描述】:我有一个名为dllName
的变量,它获取已执行的dll 的名称。有时此 dll 以"kernel32.dll"
的格式返回,有时以"C:\Windows\system32\kernel32.dll"
的格式返回。
路径可能不同,我想要实现的是剥离"C:\Windows\system32\"
。
编辑:Extract file name from path, no matter what the os/path format
我的问题和这个问题不一样,因为 os.path.basename 和 os.path.split 在这种情况下不起作用。
对于 os.path.split,头部为空,尾部包含整个路径?
【问题讨论】:
不需要正则表达式,只需使用os.path.basename
您能告诉我们您尝试过哪些不起作用或遇到困难的方法吗?如果您自己还没有尝试过任何代码,您可以使用 *** 上的搜索功能吗?
@Rawing: os.path.basename
不适用于 Linux 上的 Windows 路径。
【参考方案1】:
你可以使用:
path = 'C:\\Windows\\system32\\kernel32.dll'
print path.split('\\')[-1]
#=> kernel32.dll
或
import os.path
print os.path.basename(path)
或
import re
def extract_basename(path):
"""Extracts basename of a given path. Should Work with any OS Path on any OS"""
basename = re.search(r'[^\\/]+(?=[\\/]?$)', path)
if basename:
return basename.group(0)
print extract_basename(path)
最后一个示例应该适用于任何操作系统、任何路径。
Here 是一些测试。
【讨论】:
选项 1 有效,选项 2 无效。感谢您的帮助! 选项 2 不适用于 Linux 上的 Windows 路径。选项 3 应该适用于任何操作系统上的任何路径。以上是关于如何删除最后 \ 之前的所有字符 [重复]的主要内容,如果未能解决你的问题,请参考以下文章