我想只提取路径的文件名部分。我的代码可以使用,但我想知道这样做的更好(pythonic)方法是什么。
filename = ''
tmppath = '/dir1/dir2/dir3/file.exe'
for i in reversed(tmppath):
if i != '/':
filename += str(i)
else:
break
a = filename[::-1]
print a
答案 0 :(得分:12)
尝试:
#!/usr/bin/python
import os.path
path = '/dir1/dir2/dir3/file.exe'
name = os.path.basename(path)
print name
答案 1 :(得分:4)
你最好使用标准库:
>>> tmppath = '/dir1/dir2/dir3/file.exe'
>>> import os.path
>>> os.path.basename(tmppath)
'file.exe'
答案 2 :(得分:2)
使用os.path.basename(..)功能。
答案 3 :(得分:1)
>>> import os
>>> path = '/dir1/dir2/dir3/file.exe'
>>> path.split(os.sep)
['', 'dir1', 'dir2', 'dir3', 'file.exe']
>>> path.split(os.sep)[-1]
'file.exe'
>>>
答案 4 :(得分:0)
现有答案对于您的“真实基础问题”(路径操纵)是正确的。对于标题中的问题(当然可以推广到其他字符),有什么有助于rsplit
字符串方法:
>>> s='some/stuff/with/many/slashes'
>>> s.rsplit('/', 1)
['some/stuff/with/many', 'slashes']
>>> s.rsplit('/', 1)[1]
'slashes'
>>>