我有一个名为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,head是空的,尾部是否包含整个路径?
答案 0 :(得分: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是一些测试。