2013-02-15 28 views
1

刪除字符串我有這樣的代碼片段看起來像這樣:的Python:如何從字符串

server_directory = "/Users/storm/server" 
def get_directory(self, username): 
    home = server_directory + "/" + username 
    typic = os.getcwd() 
    if typic == server_directory: 
     return "/" 
    elif typic == home: 
     return "~" 
    else: 
     return typic 

而每一次我改變目錄出用戶的兩個漂亮的服務器目錄和主目錄,它看起來像/Users/storm/server/svr_user。我如何使它/svr_user2而不是/Users/storm/server/svr_user,因爲我想模擬一個主目錄和一個虛擬的「根」目錄?

+1

正如您在其他問題中提到的,請查看['os.path'](http://docs.python.org/2/library/os.path.html) – danodonovan 2013-02-15 10:36:57

回答

4

雖然你可以做很多與字符串操作,更好的辦法是使用os.path

import os 

src = '/Users/storm/server/svr_user' 
dst = '/svr_user2' 

a = '/Users/storm/server/svr_user/x/y/z' 
os.path.join(dst, os.path.relpath(a, src)) 

回報

'/svr_user2/x/y/z' 
0

eumiro's answer不那麼政治上正確的選擇將是:

import re 

src = '/Users/storm/server/svr_user' 
dst = '/svr_user2' 

a = '/Users/storm/server/svr_user/x/y/z' 
re.sub(src, dst, a, 1) 

其中收益率:

'/svr_user2/x/y/z' 

注意1這意味着替換一次。