我有一个字符串:
test = "/home/myself/Downloads/example.py"
我希望在/
的最后一次出现后获取文本,即example.py
。我尝试使用split:
test.split("/")[0]
但问题是它会返回带有固定索引的字符串,我通常不会这样做。
如何在最后一次出现/?
后获取字符串答案 0 :(得分:2)
您可以使用str.split
并获取索引-1
,这是列表的最后一个元素。
test = "/home/myself/Downloads/example.py"
print(test.split("/")[-1]) # 'example.py'
虽然在恢复文件名的特定情况下,Ev. Kounis的答案显示了最佳方法。
您可以让os
为您执行此操作:
import os
test = "/home/myself/Downloads/example.py"
os.path.basename(test) # -> example.py
答案 1 :(得分:2)
您可以让os
为您执行此操作:
import os
test = "/home/myself/Downloads/example.py"
os.path.basename(test) # -> example.py
答案 2 :(得分:1)
尝试使用
test.split("/")[-1]
负数索引在python中的列表中向后移动,因此这将访问最后一个元素
答案 3 :(得分:1)
您可以使用pop
方法。
print(test.split("/").pop())
pop
方法比slicing
快。
import timeit
t1 = timeit.Timer('test = "/home/myself/Downloads/example.py";test.split("/").pop()')
t2 = timeit.Timer('test = "/home/myself/Downloads/example.py";test.split("/")[-1]')
输出
t1 = 9.307525000622263e-07
t2 = 8.126347900179098e-06
答案 4 :(得分:0)
如果你的字符串是路径,你也可以使用pathlib
:
p = Path("/home/myself/Downloads/example.py")
print(p.parts[-1])
# example.py