向后读取字符串,并在开始处终止'/'
我想仅提取路径的文件名部分。我的代码在下面的工作,但我想知道这是什么更好(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
尝试:
#!/usr/bin/python
import os.path
path = '/dir1/dir2/dir3/file.exe'
name = os.path.basename(path)
print name
优秀 - 很多thx! – zyrus001 2009-11-02 08:57:07
不客气zyrus001。当然是 – 2009-11-02 09:25:20
你会更好使用标准库这样的:
>>> tmppath = '/dir1/dir2/dir3/file.exe'
>>> import os.path
>>> os.path.basename(tmppath)
'file.exe'
>>> import os
>>> path = '/dir1/dir2/dir3/file.exe'
>>> path.split(os.sep)
['', 'dir1', 'dir2', 'dir3', 'file.exe']
>>> path.split(os.sep)[-1]
'file.exe'
>>>
现有答案对于“真正的潜在问题”(路径操作)是正确的。对于您的标题问题(推广到课程的其他字符),有什么可以帮助有串的rsplit
方法:
>>> s='some/stuff/with/many/slashes'
>>> s.rsplit('/', 1)
['some/stuff/with/many', 'slashes']
>>> s.rsplit('/', 1)[1]
'slashes'
>>>
或'rpartition' – SilentGhost 2009-11-02 18:41:20
问题是措辞不当,应该是“我如何提取路径的文件名。 “ – Kurt 2009-11-02 08:52:05
你用什么书或教程学习Python? – 2009-11-02 12:06:41