この入力がある場合:
/Users/myMac/Desktop/MemoryAccess/BasicTest.asm/someStuff
そして、文字が最後に表示された時刻を見つけて "/"
、文字列を取得したいBasicTest
それを行う良い方法は何ですか?
ありがとうございました!
os.pathモジュールは、基本的なパス名操作を提供します。
>>> from os.path import *
>>> file = '/Users/myMac/Desktop/MemoryAccess/BasicTest.asm/someStuff'
>>> splitext(basename(dirname(file)))[0]
'BasicTest'
>>> s = "/Users/myMac/Desktop/MemoryAccess/BasicTest.asm/someStuff"
>>> ind = s.rfind('/')
>>> ind1 = s[:ind].rfind('/')
>>> print(s[ind1+1:ind].split('.')[0])
BasicTest
これが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'
さて、「BasicTest」は「/」の最後から2番目の外観に従いますが、それを超えて、試してみてくださいrfind
。
BasicTest.asm
戦いの半分である以下が返されます:
'/Users/myMac/Desktop/MemoryAccess/BasicTest.asm/someStuff'.split('/')[-2]
同じトリックを使用して、「。」を分割できます。
'BasicTest.asm'.split('.')[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)