0

如果有这个输入:

/Users/myMac/Desktop/MemoryAccess/BasicTest.asm/someStuff

我想找到字符最后一次 "/"出现的时间,并获取字符串BasicTest

这样做的好方法是什么?

谢谢!

4

6 回答 6

5

os.path模块提供基本的路径名操作。

>>> from os.path import *
>>> file = '/Users/myMac/Desktop/MemoryAccess/BasicTest.asm/someStuff'
>>> splitext(basename(dirname(file)))[0]
'BasicTest'
于 2012-05-03T19:06:41.687 回答
4
>>> s = "/Users/myMac/Desktop/MemoryAccess/BasicTest.asm/someStuff"
>>> ind = s.rfind('/')
>>> ind1 = s[:ind].rfind('/')
>>> print(s[ind1+1:ind].split('.')[0])
BasicTest
于 2012-05-03T18:59:20.150 回答
3

这是 os 的一个例子:

>>> p = '/Users/myMac/Desktop/MemoryAccess/BasicTest.asm/someStuff'
>>> os.path.dirname(p)
'/Users/myMac/Desktop/MemoryAccess/BasicTest.asm'
>>> os.path.splitext(os.path.dirname(p))
('/Users/myMac/Desktop/MemoryAccess/BasicTest', '.asm')
>>> os.path.basename(os.path.splitext(os.path.dirname(p))[0])
'BasicTest'
于 2012-05-03T19:09:16.910 回答
1

好吧,“BasicTest”紧随“/”的倒数第二个出现,但除此之外,试试rfind.

于 2012-05-03T18:59:43.983 回答
1

以下将返回BasicTest.asm,这是成功的一半:

'/Users/myMac/Desktop/MemoryAccess/BasicTest.asm/someStuff'.split('/')[-2]

可以使用相同的技巧来拆分“。”

'BasicTest.asm'.split('.')[0]
于 2012-05-03T19:01:30.900 回答
0

在 python 中使用 re

import re
s = "/Users/myMac/Desktop/MemoryAccess/BasicTest.asm/someStuff"
pattern = re.compile(r"/(\w+)\.\w+/\w*$")
match = re.search(pattern,s)
print match.group(1)
于 2013-01-25T08:40:07.420 回答