2017-02-17 3 views
0

前に、私は現在の形式の文字列を持っている:は最後にサブ間の部分文字列を取得し、それ

/Users/me/Documents/Project/zh-Hant-TW.lproj 

私はちょうどその前に単語.lprojとスラッシュ/の間の文字列を隔離したいです。結果はzh-Hant-TWになります。これまでのところ私が使用しようとしています:

print(myString[len("/"):-len(".lproj")]) 

は、しかし、これは非常に最初の/を選んでいると、結果は次のとおりです。

Users/me/Documents/Project/zh-Hant-TW

ないこのついて行くにはどのようにしてください。文字列を逆にして作業を試みましたが、ちょうど混乱しました。どのようにこれを行うにはヒントやポインター?あなたがエレガントなパスに関連する問題を処理することができますPythonのos.pathライブラリを使用する必要があり

import os 

print os.path.basename('/Users/me/Documents/Project/zh-Hant-TW.lproj').split('.')[0] 

>> zh-Hant-TW 
+0

'os.path.splitext'はあなたの仕事の半分を行うことができます。私はあなたがどちらの半分を推測することができますそれを取る。他の半分を終了させる1つの方法は 'stem.split( '/')'で、これはスラッシュ間のすべてのビットのリストを提供します。ここで 'stem 'はあなたが最初のステップで得るものです。 –

+0

'' /Users/me/Documents/Project/zh-Hant-TW.lproj".split( "/")[ - 1] .split( "。")[0] '? – Abdou

答えて

0

はこれを試してみてください。

import os 
basename = os.path.basename(myString) 
filename = os.path.splitext(filename)[0] 
1

それが実際のパスだ場合、あなたはいつでも使用することができます。

import os 

print(os.path.splitext(os.path.basename(myString))[0]) 
0

osモジュールを使用して、いくつかの答えがすでに存在しているので、ここでは、正規表現を使用して1 ...

import re 

path = '/Users/me/Documents/Project/zh-Hant-TW.lproj' 

results = re.findall(r'(?<=Project\/)(.*).lproj', path')[0] 

# results = 'zh-Hant-TW' 
があります
関連する問題