2011-12-24 42 views
1

給定文件的路徑:取代文件路徑和擴展名元素的最快方法?

file = "/directory/date/2011/2009-01-11 This is a file's path/file.jpg" 

如何快速將其替換爲:

new_file = "/newdirectory/date/2011/2009-01-11 This is a file's path/file.MOV" 

的同時更改目錄 「newdirectory」 和 「.JPG」 爲 「.MOV」

回答

3

那麼這可以用不同的方式完成,但這是我的方式

首先更改擴展名。這可以通過os.path.splitext東西很容易做到像

​​

這給了路徑

"/directory/date/2011/2009-01-11 This is a file's path/file.MOV" 

現在將目錄更改到newdirectory,我們可以使用str.split, with maxsplit選項。

new_file=new_file.split('/',2) 

最後使用join,用你喜歡的目錄以「/」替換第二項的列表作爲分隔符

new_file = '/'.join([new_file[0],"newdirectory",new_file[2]]) 

所以最後我們

"/newdirectory/date/2011/2009-01-11 This is a file's path/file.MOV" 

所以要總結,它歸結爲三條線

new_file=os.path.splitext(path)[0]+".MOV" 
new_file=new_file.split('/',2) 
new_file = '/'.join([new_file[0],"newdirectory",new_file[2]]) 
0

我會利用os.sep

import os 

path = "/directory/date/2011/2009-01-11 This is a file's path/file.jpg" 

path = os.path.splitext(path)[0] + '.mov' 

path = path.split(os.sep, 2) 
path[1] = 'newdirectory' 
path = os.sep.join(path) 

print path 

結果的:

 
/newdirectory/date/2011/2009-01-11 This is a file's path/file.mov 
相關問題